मुझे समझ में आया कि स्थानीय इंटरफेस को उसी कंटेनर के जेवीएम इंस्टेंस में क्लाइंट के लिए डिज़ाइन किया गया है और रिमोट इंटरफेस ईजेबी कंटेनर के जेवीएम के बाहर रहने वाले ग्राहकों के लिए डिज़ाइन किया गया है। वेब एप्लिकेशन क्लाइंट के बारे में कैसे है जो समान नहीं है (या पैक किया गया है)। लेकिन एक ही जावा ईई सर्वर पर रहते हैं?ईजेबी 3 स्थानीय और रिमोट इंटरफेस
उत्तर
आधिकारिक तौर पर @Local
एनोटेटेड बीन्स केवल उसी एप्लिकेशन में पहुंचने पर ही पहुंचा जा सकता है। ए .war एक .ear (या अन्य .war या अन्य .jar ईजेबी) से अलग से तैनात एक अलग अनुप्रयोग है, भले ही एक ही अनुप्रयोग सर्वर उदाहरण पर तैनात किया गया हो।
वहाँ इस प्रकार कोई गारंटी कि आपके .war में कोड @Local
EJB सेम कि .ear में परिभाषित कर रहे हैं कॉल कर सकते हैं है।
हालांकि, लगभग सभी एप्लिकेशन सर्वरों में अभ्यास में यह सिर्फ काम करता है।
वहाँ EJB 3.2 कल्पना के लिए एक अनुरोध आधिकारिक तौर पर स्थानीय पार आवेदन कॉल का समर्थन करने के लिए है: http://java.net/jira/browse/EJB_SPEC-22
मुझे इस सुविधा पर वोट देने वाला एकमात्र ऐसा लगता है ... हर कोई - इसमें शामिल होने के लिए स्वतंत्र महसूस करें और इस जेआईआरए अनुरोध पर 'वोट' पर क्लिक करें ;-) –
100% काम करना मुश्किल हो सकता है क्रॉस-एप्लिकेशन (क्रॉस क्लासलोडर!) कॉल करता है। क्लासलोडर 1 को क्लास ए और क्लासलोडर 2 में कक्षा ए (एक और प्रतिलिपि) है। स्थानीय इंटरफ़ेस के माध्यम से ऑब्जेक्ट ए पास करना क्लासकास्ट अपवाद का कारण बनता है क्योंकि एक ही कक्षा की दो प्रतियां होती हैं। एक ईएआर का अपना कभी-कभी अलग-अलग क्लासलोडर होता है। –
हां, कक्षा लोडिंग अलगाव यहां समस्या हो सकती है। यह अभी भी जेडीके से कक्षाओं के लिए और संभवतः एएस से कक्षाओं के लिए (इंटरफ़ेस) कक्षाओं के लिए काम करेगा (एएस के बारे में मॉड्यूलरेशन कैसे करता है) के आधार पर। कई उपयोगकर्ता शायद इस सीमा को समझ नहीं पाएंगे और यह जावा ईई में नए गूढ़ व्यक्तियों में से एक बन सकता है। –
आप रिमोट इंटरफेस का उपयोग करते हैं, लेकिन आप जेएनडीआई (इस तरह मैं इसे कैसे करूँगा) का उपयोग करके लुकअप करता हूं, इस तरह आपको सर्वर में ईजेबी का उदाहरण मिल जाता है और इसे आपके वेब एप्लिकेशन में उपयोग कर सकता है।
हालांकि आपको अभी भी वेब एप्लिकेशन प्रोजेक्ट में ईजेबी इंटरफेस के साथ एक जार की आवश्यकता है।
संपादित करें और मैं जेबी निजेट से सहमत हूं, आप ईएआर के बाहर युद्ध क्यों चाहते हैं?
क्लास लोडिंग शेंगेनियंस के कारण आप इसे अलग से तैनात करना चाहेंगे। –
रिमोट इंटरफेस को एप्लिकेशन के भीतर और साथ ही बाहर से, अन्य होस्टों से भी, एप्लिकेशन में कहा जा सकता है।
तो मान लें कि आपको दूरस्थ (@Remote
) इंटरफ़ेस चाहिए। ईजेबी 3.1 में आप निर्भरता इंजेक्शन का उपयोग कर सकते हैं।
स्थानीय इंटरफेस का उपयोग उसी एप्लिकेशन के भीतर संचार में किया जाना चाहिए। इसका मतलब यह नहीं है कि JVM है।
बिंदु है: यहां तक कि एक ही JVM उदाहरण के भीतर, एक ही सर्वर पर, दो अलग अलग अनुप्रयोगों स्थानीय इंटरफेस का उपयोग कर (जो स्थानीय और कोई इंटरफ़ेस विचारों का मतलब है) संवाद नहीं कर सकते हैं।
यदि आपके पास एक वेब घटक (डब्ल्यूएआर) के साथ-साथ एक व्यावसायिक घटक (ईजेबी-जेएआर) है जो एक ही एप्लीकेशन में है, तो सबसे सहज और सीधा समाधान उन्हें एक ईएआर या एक युद्ध में पैकेज करना है (क्योंकि जावा ईई 6)।
हां लेकिन यह सब सिर्फ सिद्धांत है। अभ्यास में आपके पास एकाधिक युद्धों के साथ एक बड़ा आवेदन है (यानी।साथी, ग्राहक और प्रशासन पोर्टल आवेदन), एक ही ईजेबी को बुलाते हुए। तैनाती/कम डाउनटाइम कारणों के लिए आप इन WAR को अलग से पैकेज करना चाहते हैं, जितने लोग करते हैं। – bozo
सहमत - मुझे यह विचार और बोझिल ईएआर दृष्टिकोण भी पसंद नहीं है, लेकिन यह आधिकारिक तौर पर सुझाए गए समाधान है। –
मुझे जेईई लोगों पर शुरू न करें। पूरी बात एक नौकरी सुरक्षा परियोजना है। हम वर्षों से जटिल परियोजनाओं में इसका उपयोग कर रहे हैं, और मुझे कहना होगा कि हम PHP में 10 गुना अधिक उत्पादक थे। लेकिन आजकल PHP विभिन्न प्रमाणन लोगों के साथ "अनकॉल" है, और आपको आज टॉयलेट पेपर बेचने के लिए एक प्रमाण पत्र होना है, इसलिए हमें सभी को ब्लोटेड * टी का सामना करना पड़ेगा जो कुछ भी ठीक से नहीं करता है। यह मुझे एफ -35 की याद दिलाता है। ;) – bozo
- 1. EJB होम/रिमोट और LocalHome/स्थानीय इंटरफेस
- 2. ईजेबी 3 और डिजाइन पैटर्न
- 3. ईजेबी में स्थानीय/दूरस्थ और नो-इंटरफेस दृश्य क्या है?
- 4. ईजेबी 3 बिजनेस लॉजिक पैटर्न और प्रैक्टिस
- 5. ईजेबी 3
- 6. स्थानीय और रिमोट
- 7. क्यों रिमोट ईजेबी 3 सत्र बीन्स पर एक प्रारंभिक कॉन्टेक्स्ट
- 8. स्थानीय और रिमोट गिट रेपो
- 9. स्पष्टीकरण स्थानीय ईजेबी आर्किलीयन
- 10. कैशिंग रिमोट ईजेबी 3.0 संदर्भ
- 11. ईजेबी 3 या हाइबरनेट 3
- 12. POJO बनाम ईजेबी बनाम ईजेबी 3
- 13. ईजेबी 3 बिजनेस प्रतिनिधि
- 14. ईजेबी स्थानीय/रिमोट इंटरफ़ेस एक ही अनुप्रयोग सर्वर उदाहरण में अलग-अलग अनुप्रयोगों के भीतर
- 15. ईजेबी 3 लेनदेन रोलबैक
- 16. ईजेबी रिमोट विधि में मिस्मिटेड सीरियलाइजेशन यूआईडी - java.util.date और DBTimestamp
- 17. ईजेबी के स्थानीय/दूरस्थ इंटरफेस नामकरण करते समय मानक सम्मेलनों या अच्छे प्रथाओं?
- 18. हमें ईजेबी 3.0 सत्र बीन्स
- 19. स्थानीय से रिमोट
- 20. ईजेबी
- 21. एप्लिकेशन क्लाइंट से रिमोट ईजेबी मॉड्यूल को कैसे कनेक्ट करें
- 22. ईजेबी 3.1 @ लोकालबीन बनाम कोई एनोटेशन
- 23. रेल 3 और रिमोट => सत्य
- 24. स्थानीय SQLite बनाम रिमोट MongoDB
- 25. स्थानीय सेवा या रिमोट सेवा?
- 26. पुश स्थानीय मास्टर रिमोट शाखा
- 27. रिमोट होस्ट से स्थानीय होस्ट
- 28. ईजेबी 3 - @ कॉलम (डालने योग्य = "झूठा") प्रश्न
- 29. अंतहीन ईजेबी 3 टाइमर को कैसे रोकें?
- 30. एएस 3 फ्लैश - बाहरी इंटरफेस
क्यों आप एक ही EAR में webapp डाल नहीं होगा? ईएआर का बिंदु एक आवेदन के वेब और ईजेबी भागों दोनों को ठीक करना है। –
'वही जे 2 ईई सर्वर' से आपका क्या मतलब है? क्या यह उसी डोमेन पर उसी डोमेन पर तैनात है? – jFrenetic
ईएआर को अलग से बनाए रखा और तैनात किया गया है और अन्य डब्ल्यूएआर ईएआरबी में ईजीबी के रहने से कुछ व्यावसायिक तरीकों का उपयोग करना चाहता है। जे 2 ईई सर्वर का मतलब है कि वे उसी उदाहरण पर तैनात किए जाएंगे। – Thurein