Bonjour,
je me forme à JPA et essaie, sur la base d'un cas simple, de faire quelques INSERT et SELECT dans une database H2 avec GlassFish 4 comme serveur d'application.
Dans Eclipse, j'ai commencé par créer un Simple JPA Project.
J'ai ajouté quelques classes, défini les cardinalités / relations (je ne sais pas si tout est bon).
Enfin j'ai construit un PERSISTENCE.XML :
J'ai une classe "Run" qui fait appel à une Entity Manager Factory :
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
19
20
21
22 <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1"> <persistence-unit name="CITIZEN2P0" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>com.citizen.entities.User</class> <class>com.citizen.entities.Groupe</class> <class>com.citizen.entities.Organisation</class> <class>com.citizen.entities.Message</class> <class>com.citizen.entities.RoleUserInGroup</class> <class>com.citizen.entities.Courrier</class> <properties> <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="javax.persistence.jdbc.url" value="jdbc:h2:~/test"/> <property name="javax.persistence.jdbc.user" value="sa"/> <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/> </properties> </persistence-unit> </persistence>
Lors de l'exécution j'obtiens toujours cette erreur :
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
19
20
21
22
23
24
25
26
27
28 package com.citizen.run; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import com.citizen.entities.User; public class Test { public static void main(String[]argv) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("Citizen2p0"); EntityManager em = emf.createEntityManager(); EntityTransaction transac = em.getTransaction(); transac.begin(); User user = new User(); user.setNomUser("nom4"); user.setPrenomUser("prenom4"); em.persist(user); transac.commit(); em.close(); emf.close(); } }
Cela fait quelques jours que je tourne en rond et je ne comprends pas où cela ne va pas.Exception in thread "main" javax.persistence.PersistenceException: Invalid persistence.xml.
Error parsing XML (line-1 : column -1): cvc-elt.1 : Déclaration de l'élément 'persistence' introuvable.
J'ai refait l'installation de GlassFish mais ne sais pas s'il est nécessaire de créer un Pool de Ressources pour H2 ou si mon Persistence.xml est suffisant.
Je suis preneur de toute piste.
Merci d'avance.
Partager