2012-04-19 17 views
5

लोड हो रहा है मेरे पास एक ऐसा एप्लिकेशन है जो जेपीए/हाइबरनेट और Google गिइस का उपयोग करता है। Guice को ServletContextListener में बूटस्ट्रैप किया गया है और यह EntityManagerFactory स्वयं सेट करता है।जेबॉस एएस 7 स्वचालित रूप से जेपीए

एप्लिकेशन टॉमकैट 7 पर ठीक काम करता है, लेकिन जब मैं जेबॉस एएस 7 पर तैनात करता हूं तो यह विफल रहता है क्योंकि जेबॉस मेरे ServletContextListener का आह्वान करने से पहले जेपीए को स्वचालित रूप से सेट करने का निर्णय लेता है।

मैं जेबॉस को स्वचालित रूप से जेपीए शुरू करने के लिए कैसे प्राप्त कर सकता हूं और इसके बजाय मेरे ServletContextListener को ऐसा करने के लिए प्रतीक्षा कर सकता हूं?

अद्यतन

लिंक है कि जेम्स नीचे प्रदान के अनुसार:

आवेदन तैनाती के दौरान, जेपीए उपयोग का पता चला है (उदाहरण के लिए persistence.xml या @ PersistenceContext/यूनिट एनोटेशन) और हाइबरनेट निर्भरता इंजेक्शन आवेदन परिनियोजन में।

https://docs.jboss.org/author/display/AS71/JPA+Reference+Guide#JPAReferenceGuide-Introduction

मैं इस "स्वत: पता लगाएं" सुविधा को अक्षम करने के लिए कैसे पता लगाने की जरूरत है।

# अद्यतन 2

जेपीए के कंटेनर प्रबंधन persistence.xml के लिए निम्न संपत्ति जोड़कर निष्क्रिय किया जा सकता: फरवरी 2012 तक,

<property name="jboss.as.jpa.managed" value="false" /> 

अनुसार this topic को यह कार्यप्रणाली केवल है एक रात के निर्माण में उपलब्ध है।

+0

यह काफी पुराना है, लेकिन मुझे एक ही समस्या का सामना करना पड़ा। मेरी अतिरिक्त समस्या यह है कि मैं persistence.xml का उपयोग नहीं कर रहा हूं बल्कि जावा मैनेजर के साथ इकाई प्रबंधक कारखाने की घोषणा कर रहा हूं और ऐसा लगता है कि संपत्ति को जोड़कर अनदेखा किया जाता है और इससे कोई फर्क नहीं पड़ता। कोई विचार अगर इसे इस दृष्टिकोण से हल किया जा सकता है? – andreadi

+0

@andreadi कोई विचार नहीं। मैं केवल एएस 7 पर एक आवेदन का परीक्षण कर रहा था लेकिन उस परियोजना के लिए इसका उपयोग करने के साथ कभी आगे नहीं बढ़ गया। आप सबसे अच्छा शर्त शायद अपने विनिर्देशों के साथ एक नया सवाल पूछना होगा। –

उत्तर

2

जेबॉस एएस 7 एक पूर्ण जावा ईई सर्वर है। इसका मतलब है कि एक जेपीए कार्यान्वयन इसके साथ आता है। टॉमकैट में आपको अपना खुद का जेपीए कार्यान्वयन प्रदान करना होगा और अनिवार्य रूप से जेपीए चला रहे हैं जैसे आप जावा एसई में करेंगे।

मैं आपको एएस 7 के लिए JPA reference दस्तावेज पढ़ने की सलाह दूंगा।

आपको सीडीआई भी मिलती है इसलिए गुइस के लिए कोई वास्तविक आवश्यकता नहीं है। आप शायद CDI के बजाय Guice इस्तेमाल कर सकते हैं, लेकिन ईमानदारी से मैं आपको नहीं बता सकता है कि कैसे :-)

+0

मैंने पहले ओरेकल वेबलॉगिक 11 जी का उपयोग किया है और यह डिफ़ॉल्ट रूप से आपके लिए जेपीए लोड नहीं करता है, इसलिए यह अजीब लगता है कि जेबॉस होगा। हालांकि मैं लिंक देखेंगे। –

+0

शायद यह आपके persistence.xml को देख रहा है और हाइबरनेट और जेपीए एपीआई लोड कर रहा है। मुझे पूरा यकीन है कि अधिकांश ईई सर्वर ऐसा करते हैं, लेकिन मैं इसकी गारंटी नहीं दे सकता।मैंने थोड़ा सा खोज किया और वास्तव में इसे अक्षम करने के तरीके पर कुछ भी नहीं निकला। आप अपने आवेदन के साथ जेपीए सबसिस्टम और बंडल हाइबरनेट को अक्षम करने में सक्षम हो सकते हैं। –

+0

मुझे इस सुविधा को अक्षम करने का कोई तरीका नहीं मिला है। मैंने आपका जवाब उखाड़ फेंक दिया है और अगले हफ्ते में मैं इसे स्वीकार करूँगा जब मैं कार्यालय में वापस आऊंगा यदि कोई और जेपीए के ऑटो-डिटेक्शन को अक्षम करने के बारे में जानकारी प्रदान नहीं करता है। मैं इस पर आपकी सहायता की सराहना करता हूं, आपके लिंक ने कम से कम समझाया कि क्या हो रहा था। –

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