Java SE + JPA : No Persistence provider for EntityManager
Salut à tous,
Alors voilà je suis un peut ennuyé avec une application Java SE pour laquelle je voudrais utiliser JPA pour la persistance.
Je suis d'autant plus ennuyé que la question a déjà été posée sur ce forum mais sans que cela puisse m'aider.
Le problème est le suivant quand j'exécute le code suivant :
Code:
1 2 3 4 5 6 7 8
| EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("TophosPU");
EntityManager em = entityManagerFactory.createEntityManager();
Query q = em.createQuery("SELECT p FROM Photo p ORDER BY p.id");
System.out.println(q.getResultList());
em.close();
entityManagerFactory.close(); |
... j'obtiens l'exception suivante :
Code:
1 2 3 4 5 6 7 8 9
| Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named TophosPU: The following providers:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Returned null to createEntityManagerFactory.
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
at tophos.main.Main.main(Main.java:23)
Java Result: 1 |
Et pourtant... tout me semble ok :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" 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_1_0.xsd">
<persistence-unit name="TophosPU" transaction-type="RESOURCE_LOCAL">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<class>tophos.persistence.Photo</class>
<class>tophos.persistence.Tag</class>
<class>tophos.persistence.Author</class>
<class>tophos.persistence.Folder</class>
<class>tophos.persistence.Medium</class>
<properties>
<property name="toplink.jdbc.user" value="tophos"/>
<property name="toplink.jdbc.password" value="xyz"/>
<property name="toplink.jdbc.url" value="jdbc:postgresql://192.168.0.1:5432/tophos"/>
<property name="toplink.jdbc.driver" value="org.postgresql.Driver"/>
</properties>
</persistence-unit>
</persistence> |
J'ai comparé les différents fichiers (persistence.xml, classes entitées, etc.) avec un projet de test qui marche très bien dans le même environnement mais je n'ai rien trouvé qui justifie que ça ne marche pas. J'ai les mêmes bibliothèques installées, la connexion à la BDD fonctionne, les classes entités on été générées automatiquement avec Netbeans depuis la BDD (tout comme la config de l'unité de persistance).
En fait je cherche une âme charitable pour m'aider à débusquer ma boulette.
Pour info :
- Le projet qui me pose pb : ZIP
- Un projet de test qui marche pour comparer : ZIP
- J'utilise Netbeans 6.0
Merci beaucoup par avance !
Ludo.