1
我“继承了”一个带有spring-ws服务的大型Spring应用程序。@产生NPE的资源注释
的服务是典型的Spring-WS代码:
package service;
@Endpoint
public class ServiceEndpoint {
@Resource EntityDao entityDao;
@PayloadRoot(localPart=...)
@ResponsePayload
public ResponseWrapperClass getServiceMethod(@RequestPayload RequestWrapperClass request) {
return new ResponseProcessorClass(request).generateResponse();
}
}
的服务是巨大的,而entityDao注射@Resource注解是在类被广泛使用。
因为我正在处理的具体方法有点复杂,所以我将它封装在一个子包的单独类中。
的ResponseProcessorClass看起来是这样的:
package service.business;
@Component
public class ResponseProcessorClass {
@Resource EntityDao entityDao;
public ResponseWrapperClass generateResponse() {
entityDao.getSomeData(); //encapsulates hibernate logic -> Null Pointer Exception
}
}
你可以通过我的上述评论看,我在我的新类使用@Resource注解的时候得到一个空指针异常。
我以前没有使用过这个注释,但是对于我所了解的documentation这个类型应该推断和注入。我无法在任何XML文件中找到任何配置。
有人能告诉我为什么我得到NPE?
Spring管理的bean。 Spring只能自动调用它管理的bean。 –
我明白这一点。事实是,这在现有的代码库中起作用。我只是从@Endpoint类中取出逻辑并将其移到单独的包中。 – Pablo
这是问题:'返回新的ResponseProcessorClass(request).generateResponse();' –