2010-04-06 12 views
7

Hibernate 3.5-Final अंततः यहां है और यह अन्य सुविधाओं के साथ बहुत अधिक अनुमानित जेपीए 2 समर्थन प्रदान करता है। मैं जेबॉस 5.1.0.जीए और हाइबरनेट 3.3 का उपयोग कर एक प्रोजेक्ट (ईजेबी 3 आधारित) पर काम कर रहा हूं, लेकिन मैं जेपीए 2 का लाभ लेना चाहता था और हाइबरनेट 3.5 में अपग्रेड करने की कोशिश की थी।जेबॉस 5.1.0 में हाइबरनेट 3.5-फाइनल। जीजी

मैंने जो किया वह काफी सरल और मानक था - मैंने बस सर्वर/कॉन्फ़िगरेशन (डिफ़ॉल्ट, सभी, आदि)/lib फ़ोल्डर में सभी हाइबरनेट 3.5 जार डाले - इस तरह वे जेबॉस के साथ भेजे गए हाइबरनेट कलाकृतियों पर प्राथमिकता लेते हैं। हालांकि यह पुस्तकालयों कि हाइबरनेट 3.3 की JPA1 कार्यान्वयन भाग पर निर्भर हैं के साथ कि JBoss जहाजों लगता है, क्योंकि मैं तैनाती पर लागू नहीं किया गया सार तरीकों और इस तरह सामान के बारे में कुछ त्रुटियाँ हो रही शुरू कर दिया:

23:21:26,792 WARN [Ejb3Configuration] Persistence provider caller does not implement the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null. 
23:21:26,792 ERROR [AbstractKernelController] Error installing to Start: name=persistence.unit:unitName=kernel-ear-3.3.0-SNAPSHOT.ear/config-persistence.jar#ConfigurationPersistenceUnit state=Create 
java.lang.AbstractMethodError: org.jboss.jpa.deployment.PersistenceUnitInfoImpl.getValidationMode()Ljavax/persistence/ValidationMode; 
    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:613) 
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:72) 
    at org.jboss.jpa.deployment.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:301) 
    at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source) 

शायद मैं एक का उपयोग करना चाहिए विभिन्न दृढ़ता प्रदान की गई? वर्तमान में यह बताया गया है:

org.hibernate.ejb.HibernatePersistence

मैं शुद्ध चारों ओर देखा और किसी दस्तावेजी उन्नयन पथ नहीं मिला। इस विषय पर ढेर ओवरफ्लो में यहां एक अनुत्तरित प्रश्न भी था।

कोई विचार, सुझाव? आपकी सहायता के लिये पहले से ही धन्यवाद।

+0

जेबॉसस के भीतर हाइबरनेट को अपग्रेड करना शायद ही कभी आसान है, जैसा आपने पाया है। अंतर-निर्भरता सभी के लिए सबसे कठिन है लेकिन सबसे छोटी जेबॉस विन्यास। – skaffman

+0

हाय, क्या आप इसे हल करने में सक्षम थे? मैं कुछ ऐसा करने और कई कठिनाइयों का सामना करने के बाद हूं। – adi

+0

अपनी persistence.xml फ़ाइल के लिए एक अलग नाम का उपयोग करने का प्रयास करें, जैसे foo-persistence.xml –

उत्तर

6

ऐसा लगता है कि हालांकि हाइबरनेट की JPA1 कार्यान्वयन भाग पर निर्भर हैं पुस्तकालयों के साथ कि JBoss जहाजों 3,3

हाँ, यह करता है (this old mail देखना एक विचार प्राप्त करने के लिए) और मुझे नहीं लगता कि कि आपका वर्तमान दृष्टिकोण संभव है। मेरी समझ यह है कि JBoss 5.2 के लिए जेपीए 2 एकीकरण की योजना बनाई गई थी, लेकिन ऐसा लगता है कि उन्होंने इस शाखा को सीधे जेबॉस 6.x पर जाने का फैसला किया।

+0

हां, मैं जेबॉस 5.2 में जेपीए 2 को शामिल करने और फिर जेबॉस 6 के लिए सीधे जाने का निर्णय लेने के बारे में जानता हूं। हालांकि, उम्मीद है कि वे कम से कम जेबॉस 5.1 उपयोगकर्ताओं के लिए अपग्रेड पथ प्रदान करेंगे क्योंकि यह संभावना नहीं है कि उनमें से कई 6.x बहुत जल्दी अपनाने जाएगा। जवाब के लिए धन्यवाद। –

+0

मैं वास्तव में एक ही अभ्यास के माध्यम से जा रहा था और मेरे कान पर सभी 3.5.x निर्भर जार पैक करने में सक्षम था, लेकिन persistence.xml फ़ाइल को पार्स करने में त्रुटि हुई। यह jboss.home/commons/lib फ़ोल्डर से निर्भरताओं को ओवरराइड करने में असमर्थ है – Joe

0

मैंने इस विशिष्ट मुद्दे के लिए एक समाधान तैयार किया है। यहां इसे फिर से समझाए जाने के बजाय, मैं आपको सभी विवरणों के साथ सीधे पोस्ट के लिंक भेजना पसंद करता हूं।

आप यहाँ पा सकते हैं: How to use JPA2 on JBoss 5.x ? (or How to eliminate class loading isolation issue?)

0

मैं भी ऊपर के लिंक है कि मेरे लिए काम किया करने के लिए कुछ निर्देश गयी।