我在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,如果它应该工作,那么我想这是一个错误?有人可以确认吗?