@Resource
を配置する
アクションBeanプロパティでは意味がありません。 リソースの注入に関する詳細情報が必要な場合 チュートリアル
を読む必要があります 。代わりに、ServletContextListener
を作成してください そこに注釈を付けます。コンテキスト初期化イベントでコンテキスト属性を設定
public class MyServletContextListener implements ServletContextListener {
@Resource(name="jdbc/dbmy")
private DataSource ds;
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("contextInitialized");
ServletContext context = servletContextEvent.getServletContext();
context.setAttribute("ds",ds);
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("contextDestroyed");
}
}
web.xml
(WEB-INFにある必要があります):
<listener>
<listener-class>com.servlet.MyServletContextListener</listener-class>
</listener>
これで、executeメソッドでデータソースを取得できます
ds = (DataSource)ServletActionContext.getServletContext().getAttribute("ds");