2010-11-11 40 views
0

Nous travaillons là-dessus depuis des jours et nous sommes perplexes. Ceci est supposé être un tutoriel facile utilisant TopLink. Nous essayons de faire fonctionner cela avant de faire notre vraie application web. Ceci est l'exception suivante nous obtenons:Exception javax.persistence.PersistenceException: Non Fournisseur de persistance pour EntityManager

Exception dans le thread "principal" javax.persistence.PersistenceException: Aucun fournisseur de persistance pour EntityManager nommé PU1:
Les fournisseurs suivants:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
Renvoyé null à createEntityManagerFactory.
à javax.persistence.Persistence.createEntityManagerFactory (Persistence.java:154)
à javax.persistence.Persistence.createEntityManagerFactory (Persistence.java:83)
à client.Client.main (Client.java:45)
Java Résultat: 1

cela se produit après l'exécution de cette ligne de notre classe pilote fem:

emf = Persistence.createEntityManagerFactory("pu1"); 

Je suppose que le problème est dans notre fichier persistence.xml (qui est dans la dossier correct (WEB-INF/classes/META-INF). NetBeans également généré le fichier xml pour nous qui est:

<?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="JPAExamplePU" transaction-type="JTA"> 
<provider>oracle.toplink.essentials.PersistenceProvider</provider> 
<jta-data-source>SomeDB</jta-data-source> 
<exclude-unlisted-classes>false</exclude-unlisted-classes> 
<properties> 
<property name="toplink.ddl-generation" value="drop-and-create-tables"/> 
</properties> 
</persistence-unit> 
</persistence> 

Nous avons également pensé qu'il peut être un ajout d'une question bibliothèque ou quelque chose le long de cette ligne. Toute aide est très appréciée. Merci

+0

utilisez-vous au serveur d'applications OC4J? – Romani

Répondre

3

Vous avez le mauvais nom d'unité de persistance. Utilisez celui du xml (à savoir celui défini par <persistence-unit name="..."):

emf = Persistence.createEntityManagerFactory("JPAExamplePU"); 
+0

Ok, nous avons essayé cela, et ainsi obtenir la même erreur. Nous pensons qu'il doit faire quelque chose avec le chemin de fichier du fichier persistence.xml, mais netbeans a créé le pu, il devrait donc être dans le bon endroit, n'est-ce pas? – Marty

+0

oui, il est au bon endroit. Assurez-vous que vos modifications ont été déployées. ("la même erreur" signifierait qu'il cherche toujours le mauvais pu) – Bozho