JPA persistence.xml META-INF ne fonctionne pas correctement

Je suis perplexe quand il s'agit de l'emplacement de mon persistence.xml fichier. Je suis à l'aide de eclipselink 2.4 mon JPA 2.0 mise en œuvre et de mon persistence.xml situé en vertu de src/main/resources/META-INF/persistence.xml comme de nombreux postes de l'état.

La première question: Après la publication de mon serveur à l'intérieur de l'éclipse, je reçois un message d'erreur indiquant que mon persistence.xml n'est pas trouvé.

Exception: : java.lang.IllegalArgumentException: No persistence unit named 'X'
is available in scope Webapp. Available persistence units: [] at

JPA persistence.xml META-INF ne fonctionne pas correctement

Voici le code de mon persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
<persistence-unit name="X" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>localJTA</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
    <property name="eclipselink.target-server" value="WebLogic"/>
    <property name="eclipselink.logging.level" value="FINEST"/>          
</properties>
</persistence-unit>
</persistence>

Si je déplace le META-INF à webapp/WEB-INF/classes/META-INF, puis ça marche! Je ne comprends pas quel est le problème.

JPA persistence.xml META-INF ne fonctionne pas correctement

J'ai vérifié les projets de build path et tout semble bon.

JPA persistence.xml META-INF ne fonctionne pas correctement

La deuxième question je vais avoir, c'est que mon annoté de la classe d'entité n'est pas détectée automatiquement par eclipselink. Dans mon JPA config j'ai Découvrir classes annotées automatiquement sélectionné.

JPA persistence.xml META-INF ne fonctionne pas correctement

J'ai aussi de la suite dans mon xml

<exclude-unlisted-classes>false</exclude-unlisted-classes>

Technologies utilisées: weblogic server 12c, EJB 3.1, JPA 2.0, M2E-WTP, et JSF 2.1

Mise à jour 1: Laissant META-INF sur le chemin src/main/resources/META-INF/persistence.xml et l'exécution de maven installer pour construire la guerre de fichier, le répertoire META-INF est correctement placé dans WEB-INF/classes/META-INF/persistence.xml comme il se doit (à l'intérieur de la guerre). Semble qu'il est seul et quand la webapp est construit et gère localement dans Eclipse. Quelqu'un peut-il m'expliquer cela?

Mise à jour 2: Laissant META-INF dans le répertoire src/main/resources
j'.e src/main/resources/META-INF/persistence.xml
et le suivant dans mon persistence.xml plutôt que d'une liste explicite de la classe d'entité

<exclude-unlisted-classes>false</exclude-unlisted-classes>

fonctionne SI je construis la guerre et de la déployer à travers la console weblogic via internet explorer. Pourquoi ne pas travailler à l'intérieur de l'éclipse!?

Mise à jour 3:
avez-vous d'inspecter ce qui se construit -Oui, à l'intérieur de l'Éclipse, j'ai à construire de façon automatique. En regardant dans le dossier de projet de je vois java package com, répertoire META-INF contenant persistence.xml et dossier de ressources qui sont sous la Webapp/target/classes.

Si la guerre est la même -Êtes-vous référant à la Webapp.la guerre dossier trouvé dans C:\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\Weblogic12cDomain_auto_generated_ear_\Webapp.war ? Si donc la seule chose qui y est WEB-INF\lib\jsf-impl-2.1.7.jar

alors avez-vous d'inspecter le classpath être utilisé pour tester votre application dans Eclipse- Cette entrée est trouvé dans mon classpath comme prévu en vertu de la Webapp/.classpath

si l'persistence.xml dans le répertoire des ressources sur le chemin de la classe de première, il sera pris à la place de celui de votre guerre ou de l'un dans le bon répertoire - Ma compréhension est l'Éclipse sera la construction du projet, puis copier le contenu sur le serveur sans avoir à générer un fichier war.

Ici est ce qui est à la racine de l'maven généré Webapp.guerre:

JPA persistence.xml META-INF ne fonctionne pas correctement

Ici est ce qui est à la racine de la Webapp dossier de projet:

JPA persistence.xml META-INF ne fonctionne pas correctement

Ici est ce qui est à la racine de la Webapp.la guerre sous-DOSSIER C:\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\Weblogic12cDomain_auto_generated_ear_\Webapp.war

JPA persistence.xml META-INF ne fonctionne pas correctement

si l'persistence.xml dans le répertoire des ressources sur le chemin de la classe de première, il sera pris à la place de celui de votre guerre ou de l'un dans le bon répertoire.- Pas sûr de ce que vous entendez par là. L'persistence.xml dans mes ressources/META-INF est celui que je veux ramassé. Pas sûr de ce qu'un fichier war de a à faire avec elle? De toute façon, ils doivent être de la même persistence.xml je ne le pense.

Toute aide est très appréciée!!

source d'informationauteur Padawan