2012-02-03 10 views
6

बनाने में असमर्थ इस विषय पर बताया गया है कि मेरी समस्या EntityManagerFactory नहीं बनाई जा सकती है। मैं मेवेन + हाइबरनेट का उपयोग कर रहा हूं। मैं एक MySQL डीबी (<jdbc://mysql://localhost:3306/<dbname>) से कनेक्ट कर रहा हूं।[PersistenceUnit: <name>]: EntityManagerFactory

यहां पर अजीब चीज ग्रहण में डीबगिंग के दौरान है, यह ठीक काम कर रही है। लेकिन जब मैं इसे मैवेन बिल्ड का उपयोग कर बनाता हूं, तो जेएआर फ़ाइल ऐसी त्रुटि फेंक रही है। मैंने पहले ही मैनिफेस्ट फ़ाइल की जांच की है और सभी आवश्यक जार क्लास-पथ में शामिल किए गए थे। नीचे कंसोल में प्रदर्शित जार की त्रुटि प्रकार है:

================================== =========================================

Feb 3, 2012 5:01:16 PM org.hibernate.annotations.common.Version <clinit> 
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final} 
Feb 3, 2012 5:01:16 PM org.hibernate.Version logVersion 
INFO: HHH000412: Hibernate Core {4.0.1.Final} 
Feb 3, 2012 5:01:16 PM org.hibernate.cfg.Environment <clinit> 
INFO: HHH000206: hibernate.properties not found 
Feb 3, 2012 5:01:16 PM org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: HHH000021: Bytecode provider name : javassist 
Feb 3, 2012 5:01:16 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!) 
Feb 3, 2012 5:01:16 PM class <name>.<name>.<name> <name> 
SEVERE: [ERROR]: [PersistenceUnit: <name>] Unable to build EntityManagerFactory 
[ERROR]: [PersistenceUnit: <name>] Unable to build EntityManagerFactory 

== ================================================== =======================

नीचे

मेरी 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_1_0.xsd" 
version="1.0"> 
<persistence-unit name="<name>"> 
<provider>org.hibernate.ejb.HibernatePersistence</provider> 
<class>classname</class> 
<properties> 
<!-- <property name="hibernate.ejb.cfgfile" value="/classifyPE.cfg.xml"/> --> 
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" /> 
<property name="hibernate.connection.password" value="<value>" /> 
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/<name>" /> 
<property name="hibernate.connection.username" value="root" /> 
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> 
</properties> 
</persistence-unit> 
</persistence> 

========= ================================================== ================

मैं यहाँ क्या गलत कर रहा हूं? या मुझे क्या कमी है?
जैसा कि बताया गया है, यह डीबग पर काम कर रहा है। लेकिन जब मैं इसे जार में पैकेज करता हूं, (libs फ़ोल्डर में मौजूद सभी आवश्यक JARs के साथ), यह नहीं है।

+1

मैं वहाँ है कि अपने कंसोल आप में से भी अधिक है लगता है? शायद एक विस्तृत ढेर निशान? – tartak

+1

दिए गए निष्पादन के नीचे और अधिक लॉग होना चाहिए, कृपया उन्हें –

उत्तर

0

persistence.xml फ़ाइल को जार की जड़ पर META-INF फ़ोल्डर में जाना चाहिए। जांचें कि यह वहां है या नहीं। मैं अनुमान लगा रहा हूं कि यह पूरी तरह से एक वर्गपाथ से संबंधित मुद्दा है।

+0

पोस्ट करें हां यह पहले से ही मेटा-आईएनएफ फ़ोल्डर में है ... मैनिफेस्ट फ़ाइल – jaysonpryde

0

अपनी दृढ़ता इकाई का नाम बदलने का प्रयास करें। यह महत्वपूर्ण है, क्योंकि नाम का उपयोग प्रत्येक EntityManager से संबंधित दृढ़ता इकाई की पहचान के लिए किया जाता है।

तो:

<persistence-unit name="<name>"> 

(उदाहरण के लिए) के साथ प्रतिस्थापित किया जाना चाहिए:

<persistence-unit name="myUnit"> 
+0

के साथ-साथ बीडी पासवर्ड के लिए '' के साथ ऐसा ही करें। –

+2

उन सिर्फ डमी इकाइयां हैं ... मैं वास्तविक नाम/मान पोस्ट नहीं किया था, लेकिन यह पहले से ही – jaysonpryde

2

<class>classname</class>

मैं अपनी इकाई classname नाम नहीं है संदेह है, तो निर्दिष्ट करने का प्रयास पूर्ण वर्गपाथ-नाम (उदाहरण के लिए foo.bar.realclassname realclassna के साथ मैं आपकी इकाई-वर्ग का नाम हूं)।

+0

मैं इसे सही ढंग से निर्दिष्ट किया है/पूरी तरह से है ... फिर भी त्रुटि तब होती है – jaysonpryde

+0

अपने डेटाबेस-पैरामीटर (उपयोगकर्ता, पासवर्ड उर्फ ​​हैं और इसी तरह) persistence.xml में hardcoded या आप किसी भी प्लेसहोल्डर प्रयोग करते हैं? क्या मैं इसका मतलब है: क्या आप सुनिश्चित हैं, समान पैरामीटर इस्तेमाल कर रहे हैं? – AlexS

+0

हाँ बताने वाली कठिन persistence.xml पर कोडित रहे हैं ... – jaysonpryde

3

अपने xml फाइल में इस ऐड

<property name="javax.persistence.validation.mode">none</property> 
संबंधित मुद्दे