2010-01-28 9 views
9

सुनता है, मैं जावा ईई एप्लिकेशन (ईएआर) बनाना चाहता हूं जो न केवल वेब सेवा (डब्ल्यूएआर) या प्रत्यक्ष जेएमएस अनुरोध (ईजेबी) प्रदान करता है, लेकिन मैं भी चाहूंगा सॉकेट अनुरोध (जैसे यूडीपी पैकेट) स्वीकार करें।एक ईएआर (जावा ईई) एप्लिकेशन जो सॉकेट अनुरोध

मैंने java.net के साथ श्रोता लिखने का प्रयास किया है। डेटाग्राम सॉकेट, इसे अलग प्रक्रिया के रूप में चलाने और मेरे ईएआर एप्लिकेशन को अनुरोध को पुनर्निर्देशित करने की कोशिश की है।

प्रश्न है .. मैं अपने जावा ईई (ईएआर) एप्लासिशन में इस तरह के सॉकेट श्रोता को कैसे निर्बाध बना सकता हूं?

धन्यवाद।

उत्तर

11

सही दृष्टिकोण है कि के लिए एक JCA एडाप्टर बनाने के लिए किया जाएगा। जेसीए एडाप्टर आउटबाउंड या इनबाउंड कनेक्टिविटी के लिए उपयोग किया जा सकता है। आपको जेसीए एडपाटर में थ्रेड या शेड्यूल काम शुरू करने की अनुमति है। इनबाउंड जेसीए एडाप्टर से ईजेबी तक कनेक्टिविटी कस्टम संदेश संचालित बीन का उपयोग करके किया जाता है।

  • अनुकूलक सॉकेट श्रोता शुरू करने और दूरस्थ क्लाइंट से कनेक्शन का प्रबंधन
  • जब एक पैकेट प्राप्त होता है, संदेश एक कस्टम एमडीबी
  • एमडीबी तो अन्य EJBs
  • के प्रसंस्करण प्रतिनिधि कर सकते हैं के लिए दिया जाता

आप जेसीए कनेक्टर से भी लेनदेन शुरू कर सकते हैं ताकि ईजेबी को संदेश/पैकेट की डिलीवरी लेनदेन हो। जेसीए जावा ईई विनिर्देशों का हिस्सा है और सभी एप्लिकेशन सर्वरों द्वारा समर्थित है।

एक और दृष्टिकोण (लेकिन spec के साथ अनुपालन नहीं), ServletContextListener से सॉकेट को सुनकर धागा शुरू करना है। थ्रेड वेब परत में चलाएगा और आप सामान्य रूप से ईजेबी को कॉल कर सकते हैं। निर्भरता इंजेक्शन काम नहीं करेगा, लेकिन जेएनडीआई लुकअप अभी भी ठीक होना चाहिए।

1

जहां तक ​​मुझे पता है कि यह कल्पना के अनुरूप नहीं है।

4

सबकुछ कंटेनर द्वारा नियंत्रित किया जाना चाहिए, क्योंकि यह जावा ईई का उपयोग करके स्केलिंग एप्लिकेशन का एकमात्र तरीका है।

कुछ विकल्प:

  • एक कनेक्टर (JCA) को लागू करें एक उदाहरण यहाँ है: http://www.theserverside.com/tt/articles/article.tss?l=J2EE1_4 शायद सबसे अच्छा तरीका है अगर आप मौजूदा ग्राहकों।

  • उपयोग जावा संदेश कतार

    इस तकनीक के बीच संबंधों को यहाँ चर्चा की है http://java.sun.com/products/jms/faq.html#relship_ejbs

  • बाहरी सर्वर जो डेटाबेस में संग्रहीत करता है अनुरोध लिखें। (कोई टीएक्स समर्थन)

  • यदि आपके पास केवल एक सर्वर और यह बहुत अधिक ओवरहेड लगता है, आप इन पहलुओं को अनदेखा कर सकते हैं। लेकिन अगर आपको लेन-देन बाद में या अतिरिक्त नोड्स की आवश्यकता है, तो इस हिस्से को फिर से डिजाइन किया जाना है।

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