我在ServletContextListener的contextInitialized(...)
方法中實例化的類中使用@Resource註釋,但該成員始終爲空。這是我的示例代碼。@Resource註釋的成員沒有注入 - 錯誤代碼或錯誤?
監聽器:
public void contextInitialized(ServletContextEvent sce) {
System.err.println("In contextInitialised");
new ResourceListenerTargetTest().executeMe();
}
ResourceListenerTargetTest:
@Resource(name="MyJDBCResource")
private DataSource source;
public void executeMe() {
/*try {
InitialContext ictx = new InitialContext();
source = (DataSource)ictx.lookup("java:comp/env/MyJDBCResource");
} catch (NamingException e) {
e.printStackTrace();
}*/
System.err.println("source is " + source);
}
如果我切換的意見和運行手冊資源查找,它工作正常。
@Resource註解應該如何在contextInitalized方法中使用?
Appserver是WAS 7.0.0.5,如果它應該工作,那麼我想這是一個錯誤?有人可以確認嗎?