在action中 使用@Resource注解service层 总是得到null

J2EE 码拜 9年前 (2015-04-15) 3071次浏览 0个评论

 在action中 使用@Resource注解service层 总是得到null dao层和service层中的都能正常得到值
但是使用getBean()却可以得到service什么原因求指教。。。
架构是s2sh纯注解。

@Service(“serviceFaceImpl”)
public class ServiceFaceImpl implements ServiceFace {
@Resource
    private UserLoginService userLoginService;
@Resource
private LeaveService leaveService;
@Override
public void setUserLoginService(UserLoginService userLoginService) {
this.userLoginService = userLoginService;
}

@Override
public UserLoginService getUserLoginService() {
return userLoginService;
}
@Override
public LeaveService getLeaveService() {
return leaveService;
}
@Override
public void setLeaveService(LeaveService leaveService) {
this.leaveService = leaveService;

}

action 中:
public class WebBaseAction extends ActionSupport  implements ServletRequestAware,ServletResponseAware {

/**
 * 
 */
private static final long serialVersionUID = 1L;
//public ServiceFace serviceFace;
protected static Logger log = Logger.getLogger(WebBaseAction.class);
   public HttpServletRequest request ;
   public HttpServletResponse response ;
 @Resource
 protected ServiceFace serviceFace;//这个无法得到

   //protected ServiceFace serviceFace =  (ServiceFace) SpringIoc.getApplicationContext().getBean(“serviceFaceImpl”);//这个可以得到serviceFace

public ServiceFace getServiceFace() {
return serviceFace;
}

public void setServiceFace(ServiceFace serviceFace) {
this.serviceFace = serviceFace;
}

在action中 使用@Resource注解service层 总是得到null
有没有碰到同样问题的啊
在action中 使用@Resource注解service层 总是得到null
public class WebBaseAction extends ActionSupport  implements ServletRequestAware,ServletResponseAware {

这个也要交给spring管理才行呀,要不怎么给你注入

加个@Controller
@controller
public class WebBaseAction extends ActionSupport  implements ServletRequestAware,ServletResponseAware {

在action中 使用@Resource注解service层 总是得到null
在子类有注入的。。把这个类注入也试过。。都得到空值。
在action中 使用@Resource注解service层 总是得到null
我有用rest插件的。。跟这个有关系吗。
在action中 使用@Resource注解service层 总是得到null
有木有人知道啊
在action中 使用@Resource注解service层 总是得到null
 @Resource
  protected ServiceFace serviceFace;//这个无法得到

这个事Resource么?
我记得是AutoWired吧。

在action中 使用@Resource注解service层 总是得到null
@Resource
   protected ServiceFace serviceFaceImpl;
这样写呢
在action中 使用@Resource注解service层 总是得到null
用getBean可以获得,证明已经被spring管理
分析一下几个可能:
1.最有可能:非接口注入
2.注入的名字对不上
在action中 使用@Resource注解service层 总是得到null
引用 8 楼 lightning_16 的回复:

用getBean可以获得,证明已经被spring管理
分析一下几个可能:
1.最有可能:非接口注入
2.注入的名字对不上

恩启动时候日记也看到了。。serviceFaceImpl这类已经注入。。。。。应该是接口注入吧。。你说的接口注入怎么区别,,dao层service层都能得到啊。到action就得不到了。

在action中 使用@Resource注解service层 总是得到null
引用 6 楼 a12939026 的回复:

@Resource
  protected ServiceFace serviceFace;//这个无法得到

这个事Resource么?
我记得是AutoWired吧。

都可以的,我是spring3.0了。。两个注解都可以用的。。

在action中 使用@Resource注解service层 总是得到null
@Resource不是默认byname的吗,你有对应名字的吗
在action中 使用@Resource注解service层 总是得到null
@Resource指着接口类好像不妥吧,一般都指实体的。

定义
@Service(“remoteServiceSH”)
public class RemoteServiceSH extends RemoteService

使用:
    @Resource(name = “remoteServiceSH”)
    private RemoteServiceSH remoteServiceSH;

在action中 使用@Resource注解service层 总是得到null
我感觉就是你的action类上加@Controller就可以了
在action中 使用@Resource注解service层 总是得到null
楼主解决了没有呀,我也是这样的问题。我用getbeen()的方式可以,但是我从controller直接注入service时报空指针,直接注入dao也报空指针。我就郁闷了。每一个注入时用的 @Resource(name=”userServImpl”) 这个名字也可以找到相应的类,可始终就是空指针。没有注入进来。 求解呀。
在action中 使用@Resource注解service层 总是得到null
楼主解决了没有 ,我的dao总是报null 求解啊
在action中 使用@Resource注解service层 总是得到null
@Resource(name = “serviceFaceImpl”)
这样再看看
在action中 使用@Resource注解service层 总是得到null
40分
引入struts2-spring-plugin-2.3.15.1.jar就可以了,对应版本的struts引入的版本不一样
在action中 使用@Resource注解service层 总是得到null
引用 17 楼 huanshiguxian 的回复:

引入struts2-spring-plugin-2.3.15.1.jar就可以了,对应版本的struts引入的版本不一样

是这样的。这个包没有引入,后面查了很久才发现。。已经解决了。。还是谢谢。。很久没进来看了。

在action中 使用@Resource注解service层 总是得到null
我的struts2-core-2.2.1.1.jar 和struts2-convention-plugin-2.2.1.1.jar 为什么还是和你一样的问题有什么解决办法吗?
在action中 使用@Resource注解service层 总是得到null
引用 19 楼 u012903790 的回复:

我的struts2-core-2.2.1.1.jar 和struts2-convention-plugin-2.2.1.1.jar 为什么还是和你一样的问题有什么解决办法吗?

struts2-spring-plugin-2.3.15.1.jar缺少这个包

在action中 使用@Resource注解service层 总是得到null
不知道 这算不算挖坟啊,不过望谅解,我也是遇到这个问题,不过我的项目是struts1,不可能导入这个jar包吧。。
而且用getbean可以得到这个对象,但是用autowired或者resource注解就只能得到空
xml中也有 component-scan

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明在action中 使用@Resource注解service层 总是得到null
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!