मैं एक करफ ओएसजीआई कंटेनर के अंदर चलाने के लिए एक WAR फ़ाइल प्राप्त करने का प्रयास कर रहा हूं। आवेदन स्टैंड-अलोन जेट्टी 6.1.26 में सही ढंग से चलाता है, लेकिन जब आवेदन Karaf के अंदर चलाया जाता है, मैं निम्नलिखित अपवाद और Karaf उदाहरण जमा मिलती है:नाइस खेलने के लिए स्प्रिंग जेपीए, हाइबरनेट और ओएसजीआई कैसे प्राप्त करें?
WARN org.hibernate.ejb.packaging.InputStreamZippedJarVisitor - Unable to find
file (ignored): bundle://125.0:240/ java.lang.NullPointerException: in is null
ध्यान दें कि आवेदन हाइबरनेट पर भरोसा नहीं कर रहा है एक अलग ओएसजीआई बंडल में; इसमें वेब-आईएनएफ/lib में हाइबरनेट जार शामिल हैं।
मैंने इस पोस्ट की जानकारी की जांच की है: Equinox (OSGi) and JPA/Hibernate - Finding Entities। हालांकि, एप्लिकेशन सीधे हाइबरनेट का उपयोग करने के बजाय जेपीए का उपयोग कर रहा है। एप्लिकेशन की कॉन्फ़िगरेशन इस पोस्ट में मिले दूसरे विकल्प की तरह है: Difference between configuring data source in persistence.xml and in spring configuration files। इस प्रकार, मेरे पास एक हाइबरनेट सत्र फ़ैक्टरी पर एक संभाल नहीं है जो मुझे एनोटेटेड क्लास संपत्ति सेट करने की अनुमति देता है।
अपवाद को दूर करने के तरीके पर कोई विचार?
स्प्रिंग जेपीए persistence.xml फ़ाइल के उदाहरण के लिए, देखें [वसंत फ्रेमवर्क संदर्भ मैनुअल की धारा 12.6.1.3] (http://static.springsource.org/spring/docs/2.5.x/reference/ orm.html) इस समाधान के लिए, orm.xml फ़ाइल में केवल ' 'तत्व और एक नेस्टेड' 'तत्व शामिल है जिसमें प्रत्येक श्रेणी के पूर्ण-योग्य क्लास नाम के साथ @ एंटीटी एनोटेशन शामिल है। 'मेटाडाटा-पूर्ण =" झूठी "विशेषता विशेषता क्लास में निर्दिष्ट एनोटेशन से orm.xml फ़ाइल (सब कुछ, इस मामले में) में निर्दिष्ट सभी डेटा को पढ़ने के लिए हाइबरनेट को बताती है। –
Adam