2011-06-06 15 views
9

सरल सवाल ...
मैं ग्रहण वातावरण
MainApp (उद्यम अनुप्रयोग परियोजना) में कुछ परियोजनाओं ग्रहण परियोजना में डालने के लिए जो
Persistence.xml जहां

  1. WebController (EJB परियोजना "भी शामिल है")
  2. WebModel (जेपीए परियोजना)
  3. WebView (गतिशील वेब परियोजना)


समस्या है जहां persistance.xml फ़ाइल डालना है?

अपवाद हो रही है: java.lang.IllegalStateException: unitName डेटामॉडल

उत्तर

14

JPA 2.0 specification अनुभाग 8.2 में पैकेजिंग की आवश्यकताओं को बताता है। यह कहता है

एक दृढ़ता इकाई को persistence.xml फ़ाइल द्वारा परिभाषित किया गया है। जार फ़ाइल या निर्देशिका जिसका META-INF निर्देशिका में persistence.xml फ़ाइल है दृढ़ता इकाई की जड़ कहा जाता है।

जावा ईई वातावरण में, एक हठ इकाई की जड़ निम्नलिखित से एक होना चाहिए:

  • एक EJB-जार फ़ाइल
  • वेब-INF/वर्गों के एक युद्ध फ़ाइल [निर्देशिका 80]
  • एक युद्ध फ़ाइल के वेब-INF/lib निर्देशिका में एक जार फ़ाइल
  • EAR पुस्तकालय निर्देशिका
  • एक आवेदन ग्राहक जार फ़ाइल में एक जार फ़ाइल

यह आवश्यक नहीं है कि एक EJB-जार या युद्ध फ़ाइल एक हठ इकाई युक्त एक कान में पैक किया जा जब तक हठ इकाई निहित या EJB-जार के अंदर के अतिरिक्त हठ कक्षाओं में शामिल है युद्ध। अनुभाग 8.2.1.6 देखें।

यदि आप इसे आवश्यक मानते हैं तो आप शेष अध्याय पढ़ सकते हैं। ग्रहण में इसका अर्थ है कि आपको अपनी परियोजनाओं के बीच निर्भरताओं को कॉन्फ़िगर करने की आवश्यकता है ताकि यह सुनिश्चित किया जा सके कि तैनाती फ़ाइलों को उचित रूप से पैक किया गया हो। आप आमतौर पर प्रोजेक्ट-> गुण-> प्रोजेक्ट टैब में पथ बनाएँ में कॉन्फ़िगर करते हैं।

हालांकि, मुझे यकीन नहीं है कि ग्रहण को वेब सर्वर परिनियोजन के लिए आवश्यकतानुसार पैकेज किया गया है या नहीं। मुझे पता है कि यह एक ईएआर परियोजना में करता है।

8

के लिए persistence.xml फ़ाइल EntityManagerFactory प्राप्त करने में असमर्थ आम तौर पर दृढ़ता (जेपीए) परियोजना के src/META-INF निर्देशिका में मौजूद है। अगर परियोजना ग्रहण के साथ बनाई गई थी, तो इसे आम तौर पर बनाया जाता है और डिफ़ॉल्ट रूप से वहां रखा जाता है।