Я использую аннотацию @Resource в классе, созданном в методе contextInitialized(...)
ServletContextListener, но член всегда равен null. Вот мой пример кода.
Слушатель:
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, если он должен работать, то, я думаю, это ошибка? Кто-нибудь может подтвердить?