2012-04-20 35 views
7

मुझे सर्वलेट में एक ग्रहण आरसीपी ऐप (यानी ग्रहण प्लगइन/ओएसजीआई बंडल के रूप में बॉक्स किया गया) के लिए मूल रूप से विकसित कोड का पुन: उपयोग करने की आवश्यकता है। मैं कहाँ पताओएसजीआई में सर्वलेट कंटेनर या सर्वलेट कंटेनर में ओएसजीआई एम्बेड करने के लिए?

ब्लॉग पोस्ट, लेख का एक बहुत पढ़ने, विकी और इतने बिंदु पर पर मैं समाप्त हो गया उसके बाद:

  1. एक OSGi फ्रेमवर्क (मेरे मामले में विषुव) एक सर्वलेट में एम्बेड किया जा सकता कंटेनर (मेरे मामले में टॉमकैट 7)
  2. या टॉमकैट को ओएसजीआई ढांचे में एम्बेड किया जा सकता है।

Equinox आसान होने के रूप में दूसरा विकल्प सिफारिश की। लेकिन उत्पादन के लिए वे अनुशंसा करते हैं 1. मुझे यकीन नहीं है कि क्यों। वास्तव में किस मामले में बेहतर है और क्यों?

मैं काफी अनुभवी टोमकैट उपयोगकर्ता हूं, जो कि इक्विनोक्स परिवर्तन में टोमकैट को एम्बेड करेगा, इसे भारी रूप से प्रशासित करेगा? या दूसरे शब्दों में, विषुव में एम्बेडेड टोमकैट में क्या अलग होगा?

उत्तर

5

सबसे पहले, कोड के पास मैनिफेस्ट के अलावा कोई ओएसजीआई/विषुव निर्भरता है? यदि नहीं, तो इसे एक सादे टोमकैट में ठीक काम करना चाहिए।

मेरी समझ यह है कि विषुव में टॉमकैट एम्बेड करना इसे भारी रूप से प्रशासित करेगा। Server.xml और catalina.sh सहित आपका फ़ोल्डर लेआउट चला जाएगा। इसके बजाय आप कॉन्फ़िगरेशन व्यवस्थापक के माध्यम से शायद एक विषुव अनुप्रयोग का प्रबंधन करेंगे।

दूसरा ओएसजीआई के लिए दो सर्वलेट प्रोग्रामिंग और तैनाती मॉडल हैं। पहला HttpService है जिसमें आप प्रोग्रामेटिक रूप से अपने servlets और संसाधनों को पंजीकृत करते हैं (आप इसे एक्सटेंशन बिंदु के माध्यम से भी कर सकते हैं)। इस मामले में आपका आवेदन सिर्फ बंडलों का संग्रह है। हालांकि आप फ़िल्टर का उपयोग नहीं कर सकते हैं। दूसरा एक वेब एप्लिकेशन बंडल (डब्ल्यूएबी) है जो एक ओएसजीफाइड वार है।

+2

मैं पूरी तरह से भूल गया, अगर आप इक्विनोक्स में टॉमकैट चलाने की सोच रहे हैं तो शायद आप इसे स्वयं बनाने के बजाय [ग्रहण कन्या] (http://www.eclipse.org/virgo/) पर एक नज़र रखना चाहते हैं । –

4

अपाचे स्लिंग का maven-launchpad-plugin एक युद्ध फ़ाइल उत्पन्न कर सकता है जो एक ओएसजीआई फ्रेमवर्क (अपाचे फ़ेलिक्स मानक के रूप में एम्बेड करता है, सुनिश्चित नहीं है कि अन्य समर्थित हैं) और आपके द्वारा परिभाषित बंडलों का एक सेट एम्बेड किया गया है। टॉमकैट में ओएसजीआई ऐप्स चलाने के लिए इस्तेमाल किया जा सकता है।

5

हम जटिल वेब एप्लिकेशन का माइग्रेशन कर रहे हैं जो इक्विनोक्स पर ओएसजीआई से गैर-ओएसजीआई से जेटी का उपयोग करता है। मैंने कुछ चीजों के बारे में सीखा है जो निश्चित रूप से आपके निर्णय को एक या दूसरे तरीके से चला सकते हैं: - यदि आप अपने ऐप को चलाने के लिए ओएसजीआई को ढांचे के रूप में उपयोग करना चुनते हैं और उदा। विकल्प # 2, आपके ऐप का उपभोग करने वाला सब कुछ ओएसजीआई बंडल होना होगा। वाणिज्यिक पुस्तकालयों की कोई बाहरी या तीसरी पार्टी। यदि आप खुले स्रोत का उपयोग करते हैं, तो बंडलों को ढूंढना बहुत आसान है। या यदि आप बंडल नहीं पा रहे हैं तो आप हमेशा बीएनडीटूल का उपयोग करके स्वयं को बंडल कर सकते हैं। फिर भी यह दृष्टिकोण सभी उचित निर्भरताओं को समझने में समय ले सकता है और संभव वर्ग लोडर मुद्दों के लिए ओएसजीआई के आसपास हैक की आवश्यकता है - ओएसजीआई को टॉमकैट में एम्बेड करने का दृष्टिकोण, जो सतह पर सुरक्षित और आसान दृष्टिकोण जैसा प्रतीत हो सकता है। हालांकि मुझे यकीन नहीं है कि आपको इस मामले में डब्ल्यूएबी से लाभ मिलेगा।

बीटीडब्ल्यू डब्ल्यूएबी के दिलचस्प लाभों में से एक यह है कि आप आसानी से वेबएपप्स के बीच कोड साझा कर सकते हैं, क्योंकि उन्हें बंडलों के रूप में तैनात किया जाता है और आप बस उन पर पैकेज निर्यात/आयात कर सकते हैं। ऐसा कुछ जो आज गैर-ओएसजीआई तैनाती के साथ वास्तव में संभव नहीं है।