2014-05-23 12 views
9

So che ci sono altre domande su SO su questo problema, ma nessuna delle soluzioni ha funzionato per me. Sto usando Maven per creare un progetto java in eclipse, e ho il mio file persistence.xml nella cartella src/main/resource/META_INF. Ma quando provo ad installare MVN, ho sempre arrivare questo errore:Maven/Eclipse: impossibile trovare il file META-INF/persistence.xml nel classpath

No Persistence provider for EntityManager named plasma.persistence 

Guardando attraverso l'uscita della console sembra essere causato da questo:

[org.hibernate.jpa.boot.internal.PersistenceXmlParser] - HHH000318: Could not find any META-INF/persistence.xml file in the classpath 

Ecco il mio file persistence.xml:

<persistence 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" 
    version="2.0"> 
<persistence-unit name="plasma.persistence" transaction-type="RESOURCE_LOCAL"> 
    <properties> 
     <property name="hibernate.dialect" value="org.hibernate.spatial.dialect.postgis.PostgisDialect"/> 
     <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/> 
     <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432:xxxxx"/> 
     <property name="hibernate.connection.username" value="xxxxx"/> 
     <property name="hibernate.connection.password" value="xxxxx"/> 
     <property name="hibernate.connection.pool_size" value="5"/> 
     <property name="hibernate.show_sql" value="true"/> 
     <property name="hibernate.format_sql" value="true"/> 
     <property name="hibernate.max_fetch_depth" value="5"/> 
     <property name="hibernate.hbm2ddl.auto" value="update"/> 
    </properties> 
</persistence-unit> 

ho cercato clic destro sul progetto e aggiungendo la folde META_INF r al percorso di build e ancora non funziona. Qualche idea?

risposta

22

La home corretta per il file di persistenza deve essere src/main/resources/META-INF. Nella domanda, si menziona src/main/resource/META_INF. Nota, ci dovrebbe essere un 's' in risorse e un trattino (-) in META-INF, non un trattino basso. Sono solo errori di battitura nella domanda? In caso contrario, correggi il percorso e dovrebbe funzionare.

2

Ho inserito un'esclusione e il tecnico si è fermato per inserire persence.xml. Ho dovuto usare la forza brutale per risolvere:

<resources> 
     <!-- After this maven stopped to put parsistence.xml--> 
     <resource> 
      <directory>src/main/resources/CATALINA_HOME/conf</directory> 
      <excludes> 
       <exclude>log4j.properties</exclude> 
       <exclude>jpa_stocks.properties</exclude> 
      </excludes> 
     </resource> 
     <!-- Brutal force to fix --> 
     <resource> 
      <directory>src/main/resources/META-INF</directory> 
      <targetPath>META-INF</targetPath> 
      <includes> 
       <include>persistence.xml</include> 
      </includes> 
     </resource> 
    </resources> 
+0

Questo ha funzionato per me. Grazie – Calixto

+0

Nota che non sono gli esclusi, ma il fatto che sia stato definito ''. Non appena vengono aggiunti gli elementi risorsa, spetta allo sviluppatore definire tutto ciò che è necessario esplicitamente. Le impostazioni predefinite di Maven non vengono più utilizzate. Ecco perché il secondo '' era richiesto nell'esempio precedente. – user944849

Problemi correlati