Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment établir une connexion à une base de données dans l'application d'Apache Tomcat à l'aide de Struts 2

Mettre @Resource sur la propriété action bean n'a aucun sens. Si vous avez besoin de plus d'informations sur l'injection de ressources vous devriez lire un tutoriel . Créez plutôt un ServletContextListener et y mettre une annotation. Sur l'événement initialisé par le contexte définir l'attribut de contexte

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 (doit être dans WEB-INF):

<listener>
  <listener-class>com.servlet.MyServletContextListener</listener-class>
</listener>

maintenant vous pouvez obtenir la source de données dans la méthode d'exécution

ds = (DataSource)ServletActionContext.getServletContext().getAttribute("ds");