Salut !!
Débutant en JPA, j'essaie de mettre dans le contexte de l'application un EntityManagerFactory qui devrait lire le fichier persistence.xml
Ci-dessous le code du listener :
Ici, le code du fichier de persistence :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 @WebListener public class GuestListener implements ServletContextListener { private EntityManagerFactory emf; @Override public void contextInitialized(ServletContextEvent servletContextEvent){ ServletContext servletContext = servletContextEvent.getServletContext(); emf = Persistence.createEntityManagerFactory("myJPA"); servletContext.setAttribute("emf", emf);
Ici, code du web.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <persistence-unit name="myJPA" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <non-jta-data-source>java:comp/env/jdbc/duoMySqlDataSource</non-jta-data-source> <class>org.guest.Guest</class> </persistence-unit>
Le problème c'est lors du chargement de l'application. Le listener ne voit pas le fichier de persistance :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <listener> <listener-class>org.guest.GuestListener</listener-class> </listener> <servlet> <display-name>GuestServlet</display-name> <servlet-name>GuestServlet</servlet-name> <servlet-class>org.guest.GuestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>GuestServlet</servlet-name> <url-pattern>/GuestServlet</url-pattern> </servlet-mapping> <resource-ref> <description>Ressource JDBC de l'application</description> <res-ref-name>jdbc/duoMySqlDataSource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
javax.persistence.PersistenceException: No Persistence provider for EntityManager named myJPA
Je sais pas ce qui pose problème. Si vous avez une petite idée ?
Merci
Partager