2014-05-23 7 views
9

में कोई मेटा-आईएनएफ/persistence.xml फ़ाइल नहीं मिल सका, मुझे पता है कि इस मुद्दे के बारे में SO पर अन्य प्रश्न हैं, लेकिन मेरे समाधानों में से कोई भी मेरे लिए काम नहीं करता है। मैं ग्रहण में एक जावा परियोजना बनाने के लिए मेवेन का उपयोग कर रहा हूं, और मेरे पास src/main/resource/META_INF फ़ोल्डर में मेरी persistence.xml फ़ाइल है। लेकिन जब मैं स्थापित mvn करने की कोशिश, मैं हमेशा इस त्रुटि मिलती है:मेवेन/ग्रहण: क्लासपाथ

No Persistence provider for EntityManager named plasma.persistence 

कंसोल आउटपुट यह इस की वजह से हो गया लगता है के माध्यम से देख रहे हैं:

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

यहाँ मेरी 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> 

मैं सही परियोजना पर क्लिक करके और META_INF folde जोड़ने की कोशिश की है निर्माण पथ के लिए आर, और यह अभी भी काम नहीं करता है। कोई विचार?

उत्तर

22

दृढ़ता फ़ाइल के लिए उचित घर स्रोत/मुख्य/संसाधन/मेटा-आईएनएफ होना चाहिए। प्रश्न में, आप src/main/resource/META_INF का उल्लेख करते हैं। ध्यान दें, संसाधनों में एक 'एस' होना चाहिए और मेटा-आईएनएफ में एक डैश (-) होना चाहिए, अंडरस्कोर नहीं। क्या वे सिर्फ प्रश्न में टाइप कर रहे हैं? यदि नहीं, तो पथ को ठीक करें और इसे काम करना चाहिए।

2

मैंने एक बहिष्कार रखा और maven persistence.xml डालने से रोक दिया। मुझे ठीक करने के लिए क्रूर बल का उपयोग करना पड़ा:

<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

यह मेरे लिए काम करता था। धन्यवाद – Calixto

+0

ध्यान दें कि यह शामिल नहीं है, यह तथ्य है कि '' बिल्कुल परिभाषित किया गया था। जैसे ही कोई संसाधन तत्व जोड़े जाते हैं, यह डेवलपर पर निर्भर करता है कि वह स्पष्ट रूप से आवश्यक सब कुछ परिभाषित करे। मेवेन डिफ़ॉल्ट अब उपयोग नहीं किया जाता है। यही कारण है कि उपर्युक्त उदाहरण में दूसरा ' 'आवश्यक था। – user944849

संबंधित मुद्दे