9
votes

JPA avec TOLLINK: Non Meta-Inf / Persistence.xml a été trouvé dans CLASSPATH

javax.persistence.PersistenceException: No Persistence provider for EntityManager named IRCBotPU:  
   No META-INF/persistence.xml was found in classpath.

1 commentaires

@OXBOW_LAKES - Vous auriez pu le résoudre :-) Je viens de le faire.


7 Réponses :


1
votes

persistance.xml ne doit pas être dans votre chemin de classe; Fichier jar contenant persistance.xml dans son dossier Meta-Inf doit.


2 commentaires

Quel est le nom du pot contenant une méta-inf / persistance.xml? Est-ce que JAR dans vos applications de classe de classe?


Non, ce n'est pas un fichier jar que j'utilise Netbeans 6.0, donc cela crée simplement le paquet Meta-Inf et à l'intérieur de la persistance.xml.



0
votes

Votre fichier meta-Inf / persistence.xml doit ressembler à ceci comme suit:

// <persistence>
//   <persistence-unit name="IRCBotPU">
//     <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
//     <!-- All persistence classes must be listed -->
//     <class>entity.Customer</class>
//     <class>entity.Order</class>
//     <class>entity.Item</class>
//     <properties>
//       <!-- Provider-specific connection properties -->
//       <property name="toplink.jdbc.driver" value="<database driver>"/>
//       <property name="toplink.jdbc.url" value="<database url>"/>
//       <property name="toplink.jdbc.user" value="<user>"/>
//       <property name="toplink.jdbc.password" value="<password>"/>
//       <!-- Provider-specific settings -->
//       <property name="toplink.logging.level" value="INFO"/>
//     </properties>
//   </persistence-unit>
// </persistence>


0 commentaires

2
votes

L'erreur est un peu trompeuse. Le fichier XML lui-même doit être pas strong> dans la classe de classe; La partie du message disant "meta-Inf / persistence.xml" signifie que le répertoire contenant meta-Inf / persistence.xml devrait être strong>.

Si votre disque dur avait le suivant P>

C: \ libs \ jpa \ meta-inf \ persistence.xml p>

alors votre point de classe doit inclure ceci P>

CLASSPATH=C:\<path to jar>\foo.jar


2 commentaires

Mon classe de classe est définie sur la manière exacte que vous avez mentionnée ci-dessus.Mais cela ne fonctionnera toujours pas.


Le pot contient-il la mise en œuvre de "ircbotpu" dans la classe de classe?



23
votes

J'ai eu le même problème, je garde mon fichier persistant.xml dans le répertoire WebContent / Meta-Inf, tandis que la spécification JPA indique:
La racine de l'unité de persistance est le répertoire Web-Inf / Classes; Le fichier persistant.xml est donc contenu dans le répertoire Web-INF / Classes / Meta-Inf de
Essayez de placer persistance.xml sous SRC / Meta-Inf.


1 commentaires

Dans l'éclipse après avoir travaillé pour moi: SRC / Meta-Inf / persistence.xml



1
votes

J'ai une application Web et les suivantes ont fonctionné bien. Ce que j'ai fait, ajoutez le répertoire Meta-Inf avec la persistance.xml dans l'emplacement SRC / Main / Ressources [Projet Maven]


0 commentaires

0
votes

J'ai créé un dossier appelé Meta-Inf sous SRC et fonctionne. "Marcosbeirigo" répondit déjà. Je ne sais pas pourquoi je dois mettre cette persistance.xml là-bas. Je l'ai mis sous WebContent / Meta-Inf et je n'ai pas fonctionné


1 commentaires

Parce que SRC est sur la classe de classe, c'est pourquoi cela a fonctionné.



3
votes

Si vous utilisez Intellij ou une structure de projet Maven, vous devez placer l'ensemble du fichier "meta-Inf / persistence.xml" dans les ressources dans les ressources (SRC / Ressources) Dossier de sorte qu'il déplacerait votre persistance.xml fichier dans "web-inf / classes / persistence.xml" emplacement.

Si vous utilisez Eclipse ou quelque chose d'autre fait les modifications en conséquence afin de déplacer le fichier sur web-inf / classes / persistence.xml

Quelque chose d'autre n'a pas fonctionné pour moi.


0 commentaires