Bonjour.
Je développe actuellement un projet avec Eclipse dans le cadre de mes études, et je bloque complètement sur un point.
On doit créer un servlet qui va enregistrer des données dans une base de données avec JPA.
Je soupçonne que le problème vienne du fichier persistence.xml, je ne sais même pas si il est chargé / lu par le serveur.
Code Java : 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
19 @WebServlet(urlPatterns="/auth/addElement") public class AddElementServlet extends HttpServlet { private static final long serialVersionUID = 1L; @PersistenceContext public EntityManagerFactory factory; @Override public void init(ServletConfig config) throws ServletException { super.init(config); factory = Persistence.createEntityManagerFactory("PU"); } @Override public void destroy() { factory.close(); } }
Le serveur n'aime pas l'instruction Persistence.createEntityManagerFactory("PU");
Code Stacktrace : 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
19
20
21
22
23 GRAVE: Exception lors de l'allocation pour la servlet com.********.servlet.AddElementServlet javax.persistence.PersistenceException: No Persistence provider for EntityManager named PU at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:84) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at com.********.servlet.AddElementServlet.init(AddElementServlet.java:12) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
persistence.xml:
Code xml : 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
19 <?xml version="1.0"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> <persistence-unit name="PU" transaction-type="RESOURCE_LOCAL"> <!-- <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> --> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> <property name="javax.persistence.jdbc.user" value="project_user" /> <property name="javax.persistence.jdbc.password" value="project_user" /> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/project" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence>
Je découvre tout ça, ça fait énormément d'informations, et je ne sais pas du tout pourquoi ça ne fonctionne pas.
Est-ce que vous avez une idée, une piste d'où ça bloque ?
Cordialement.
Partager