当前位置:编程学习 > JAVA >>

spring注入问题,求解高手

各位兄弟:
    最近在用s2sh做项目,出现一个一个问题一直无法解决,求解。
    问题是这样的。我有一个action对象(A),里面有多个方法,也有一个注入的service对象。
    现有一个框架页,分别访问了A的2个不同方法。当我重启了tomcat,然后第一次访问这个框架页的时候,访问的2个方法有一个报了空指针异常,有一个正常。空指针是由于service对象注入为null导致。我疑惑的是,为什么同时访问action对象的两个方法,为什么一个注入失败,一个注入成功,而且哪个成功哪个失败具有随意性。并且这样的问题只发生在tomcat重启后第一次访问时候。
    请指点。

--------------------编程问答-------------------- 哇。。。一个很不可思议的问题。。。
从来没有碰见过耶。。。
如果我是楼主,我会选择从scope原因上查起。。。 --------------------编程问答-------------------- 下面是我调试的输出的信息。


[DEBUG] 2012-08-06 13:36:38 [com.yao.test.action.org.GroupAction]- 注入groupService:null
[DEBUG] 2012-08-06 13:36:38 [com.yao.test.action.org.GroupAction]- gsID:null
[DEBUG] 2012-08-06 13:36:38 [com.yao.test.action.org.GroupAction]- 注入groupService:com.yao.newoa.service.org.impl.GroupServiceImpl@13ecbfc
[DEBUG] 2012-08-06 13:36:38 [com.yao.test.action.org.GroupAction]- gsID:com.yao.newoa.service.org.impl.GroupServiceImpl@13ecbfc --------------------编程问答-------------------- @Scope("prototype")
其他的service对象是单例 --------------------编程问答-------------------- 高手求救啊。
原来spring 2.56没问题
现在用spring 3.1出现的问题 --------------------编程问答-------------------- 能不能把代码发出来啊 --------------------编程问答-------------------- 百思不得其解~~ --------------------编程问答-------------------- 哇,貌似好复杂啊 --------------------编程问答-------------------- LZ代码粘出来看看 --------------------编程问答-------------------- 部分代码如下:

[code]
@Component("groupaction")
@Scope("prototype")
public class GroupAction extends BaseAction implements ModelDriven{


final static Logger log = Logger.getLogger(GroupAction.class);

private GroupFormBean gfb = new GroupFormBean();

private IGroupService groupService;
private IRoleService roleService;

public GroupAction(){
log.debug("构造了action:"+this);
}

public IRoleService getRoleService() {
return roleService;
}
@Resource(name="roleService")
public void setRoleService(IRoleService roleService) {
this.roleService = roleService;
}
public IGroupService getGroupService() {
return groupService;
}
@Resource(name="groupService")
public void setGroupService(IGroupService groupService) {
log.debug("注入groupService:"+groupService);
this.groupService = groupService;
log.debug("gsID:"+groupService);
}
public String add()throws Exception{
String returnValue=SUCCESS;
log.debug("获取到的gfb对象:"+gfb);
try {
groupService.addByDto(gfb);
log.info("添加群组成功");
} catch (Exception e) {
log.error("添加群组异常。原因:"+e.getMessage());
throw e;
}
return returnValue;
}

public Object getModel() {
return gfb;
}
}

[/code]

--------------------编程问答-------------------- @Component("groupaction")
@Scope("prototype")
public class GroupAction extends BaseAction implements ModelDriven{


final static Logger log = Logger.getLogger(GroupAction.class);

private GroupFormBean gfb = new GroupFormBean();

private IGroupService groupService;
private IRoleService roleService;

public GroupAction(){
log.debug("构造了action:"+this);
}

public IRoleService getRoleService() {
return roleService;
}
@Resource(name="roleService")
public void setRoleService(IRoleService roleService) {
this.roleService = roleService;
}
public IGroupService getGroupService() {
return groupService;
}
@Resource(name="groupService")
public void setGroupService(IGroupService groupService) {
log.debug("注入groupService:"+groupService);
this.groupService = groupService;
log.debug("gsID:"+groupService);
}
public String add()throws Exception{
String returnValue=SUCCESS;
log.debug("获取到的gfb对象:"+gfb);
try {
groupService.addByDto(gfb);
log.info("添加群组成功");
} catch (Exception e) {
log.error("添加群组异常。原因:"+e.getMessage());
throw e;
}
return returnValue;
}

public Object getModel() {
return gfb;
}
} --------------------编程问答-------------------- 重启服务器后第一次访问有时候会报空指针异常。
下面是我调试的输出的信息。


[DEBUG] 2012-08-06 13:36:38 [com.yao.test.action.org.GroupAction]- 注入groupService:null
[DEBUG] 2012-08-06 13:36:38 [com.yao.test.action.org.GroupAction]- gsID:null
[DEBUG] 2012-08-06 13:36:38 [com.yao.test.action.org.GroupAction]- 注入groupService:com.yao.newoa.service.org.impl.GroupServiceImpl@13ecbfc
[DEBUG] 2012-08-06 13:36:38 [com.yao.test.action.org.GroupAction]- gsID:com.yao.newoa.service.org.impl.GroupServiceImpl@13ecbfc
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,