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.