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();' –