2009-10-01 12 views
5

जावा वेब सेवाओं के लिए AXIS या CXF आवश्यक है? क्या यह सब जेडीके (1.6) के माध्यम से किया जा सकता है?जावा वेब सेवाएं - एक्सिस आवश्यक है?

+0

क्या आप वेब सेवा को कॉल करने या प्रदान करने के बारे में बात कर रहे हैं? – Yishai

उत्तर

3

क्या जावा वेब सेवाओं के लिए एक्सिस या सीएक्सएफ आवश्यक है?

हालांकि Axis2 सं उन्हें करने के लिए एकमात्र तरीका नहीं है वेब सेवाओं के साथ काम करने में सबसे लोकप्रिय रूपरेखा है।

क्या यह सब जेडीके (1.6) के माध्यम से किया जा सकता है?

हाँ, लेकिन यह रास्ता बहुत कठिन है। आपको अन्य ऐप्स द्वारा उपयोग किए गए ढांचे का उपयोग करने और बग से विकास टीम को प्रदान करने से काफी फायदा होगा। हाथ से सब कुछ करना पहिया को फिर से शुरू करना है।

आप क्या नीचे हो रहा है का पूरा नियंत्रण करना चाहते हैं, शायद आप के साथ जा सकते हैं: JAX-WS

या यदि आवेदन बहुत आसान है, सॉकेट के साथ सीधे।

लेकिन फिर, Axis2 WS (लेकिन केवल एक)

+1

बस एक अनुमान है, लेकिन वह शायद उससे थोड़ा अधिक विस्तार चाहता है। –

+0

@ विल्लियम: अधिक जानकारी जोड़ने के लिए संपादित किया गया। मैं सोच रहा हूं कि अंत में और क्या जोड़ा जाता है इससे कोई जवाब नहीं होगा। एक्सिस आवश्यक है? नहीं, जेडीके के साथ किया जा सकता है? हाँ, लेकिन यह बहुत कठिन है। :) – OscarRyz

1

आप के रूप में आप whish http वेब सर्वर द्वारा प्रदान की धाराओं का उपयोग कर सकते हैं, ऐसा करने के लिए विहित रास्ता लेकिन एक रूपरेखा का उपयोग कर और कुछ जार (जो कर रहे हैं है काम करने के लिए सिद्ध) लंबे समय में आपको बहुत सारे सिरदर्द और बहुत समय बचाएगा।

0

आम तौर पर आप वेब सेवाओं के लिए प्रोग्रामिंग ढांचे का उपयोग करना चाहेंगे।

सूर्य से एक्सिस, सीएक्सएफ, या जावा ईई (ग्लासफ़िश) डाउनलोड की तरह कुछ।

2

एक्सिस के विकल्प के रूप में, आप Spring WebServices फ्रेमवर्क का उपयोग अपने वेब सर्विसेज एप्लिकेशन को जेएमईई कंटेनर जैसे टॉमकैट या किसी भी तरह के समान चलाने के लिए कर सकते हैं। मुझे इसका उपयोग करना और सेटअप करना बहुत आसान लगता है, और यदि आप बाद में किसी अन्य वेब एप्लिकेशन में अपने वेबसाइसेस को एकीकृत करना चाहते हैं, तो यह करना काफी आसान है (मैंने स्वयं को दो अलग-अलग मौकों पर किया है)।

+0

एक्सिस 1? खराब। Axis2? और भी बदतर। स्प्रिंग वेब सेवाओं के लिए +1। – duffymo

3

निम्न बात लागू होने और व्यक्तिगत कहानी के लिए एक सब पर आधारित है:

तो आप अपने जावा वेब अनुप्रयोग में एक वेब सेवा का उपभोग करना चाहते हैं, और आप के लिए जार के 10MiB जोड़ने के लिए नहीं करना चाहते हैं अपने दुबला 1.3 MiB .war फ़ाइल, और इसके अलावा आप XML को पार्स करने में बहुत अच्छे हैं (आप कोड XPath क्वेरीज़ और XSLT फ़ाइलों को सौंप सकते हैं), आप पूरी तरह से HTTP को समझते हैं, और जिस क्लाइंट के साथ आप इंटरफेसिंग कर रहे हैं, उसके पास महान दस्तावेज़ हैं। आप डब्ल्यूएसडीएल को अपने एंडपॉइंट्स और अपनी विधियों को देखते हैं और एक जावा क्लास बनाना शुरू करते हैं जो आपको आवश्यक सुविधाओं के लिए मानचित्र बनाता है। आप पहले से ही बहुत अच्छा महसूस कर रहे हैं।

वे एसओएपी अनुरोध कैसे भेजते हैं, इस पर आप पढ़ना शुरू करते हैं और आपको लगता है कि यह थोड़ा वर्बोज़ दिखता है लेकिन वे क्या करते हैं यह सब सिर्फ एक स्ट्रिंग है, इसलिए आप एक उपयोगिता बनाना शुरू करते हैं जो आपके जावा अनुरोध ऑब्जेक्ट को लेता है और इसे परिवर्तित करता है एक एसओएपी अनुरोध के लिए। आप सर्वर पर अपना स्पष्ट SOAP अनुरोध भेजते हैं लेकिन इसे अस्वीकार कर दिया जाता है (missing a signature)।

तो अब आप अपने प्रोजेक्ट में एन्क्रिप्शन जेएआर जोड़ना शुरू करते हैं और आप एक्सएमएल दस्तावेज़ के हिस्से के हस्ताक्षर की गणना कैसे करें और अनुरोध में इसे और दस्तावेज़ दोनों को शामिल करना शुरू करें।यह आपको थोड़ी देर लेता है लेकिन पर्याप्त हैकिंग के साथ आपको एक संदेश मिलता है जिसे आप अपनी साबुन सेवा में भेज सकते हैं और अब आप SOAP response से निपट रहे हैं। अब आप बहुत अच्छा महसूस कर रहे हैं ...

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

इस बिंदु पर मैंने इसे शुद्ध जावा तरीके से कार्यान्वित करने की कोशिश छोड़ दी और मानक पुस्तकालयों का उपयोग करना शुरू कर दिया। वे एन्क्रिप्शन, मार्शलिंग, विचलन जैसे मानकों के साथ सौदा करते हैं और वे आपको उन समस्याओं पर ध्यान केंद्रित करने देते हैं जो आपकी समस्या डोमेन के करीब हैं। मुझे आशा है कि आप इस सबक को सीखने के लिए मुझे खो गए महीने को बचा सकते हैं।

3

2013.

वेब सोप और हुआ करता था सेवाओं में वेब सेवाओं के परिदृश्य पर एक अद्यतन XML- आधारित। वेब सेवाओं को जेएक्स-डब्ल्यूएस में मानकीकृत किया गया था। और अधिक लोकप्रिय चौखटे में से कुछ (थे) हैं:

  • एक्सिस 1.x
  • एक्सिस 2
  • अपाचे CXF - CXF भी अन्य प्रोटोकॉल भी शामिल है। यह एक बहुत व्यापक ढांचा
  • मेट्रो वेब सेवा जिसमें जेएक्स-डब्ल्यूएस संदर्भ कार्यान्वयन शामिल है।
  • जावा 6 और जावा 7 में डिफ़ॉल्ट रूप से जेएक्स-डब्ल्यूएस आरआई शामिल है। इसका मतलब है कि ग्राहक और सेवा स्टब्स/कंकाल उत्पन्न करने के अलावा ढांचे की आवश्यकता नहीं है

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

आम तौर पर, वेब सेवाओं को बनाने के लिए, मैं मेट्रो और जेएक्स-डब्ल्यूएस आरआई की सिफारिश करता हूं।

ध्यान दें कि कई डब्लूएस-* मानक हैं उदा। डब्लूएस-सुरक्षा जो सभी डब्ल्यूएस कार्यान्वयन का हिस्सा नहीं हो सकती है।

चूंकि वेब सेवाएं थोड़ी देर के आसपास रही हैं, इसलिए अन्य विकल्प वास्तुशिल्प शैली, प्रोटोकॉल और एन्कोडिंग के मामले में सामने आए हैं।

उदाहरण के लिए, एक्सएमएल डी-फैक्टो एन्कोडिंग होता था। जेएसओएन अब और अधिक प्रचलित है। जैक्सन, एक जेएसओएन पार्सर, या Google जीएसओएन में देखना उचित है। जेएसओएन के पक्ष में मुख्य तर्क यह है कि इसका उपयोग करना आसान है, हल्के, और डेवलपर-अनुकूल।

JSON के साथ REST आया था। आरईएसटी एक वास्तुशिल्प शैली है। आरईएसटी के साथ, आप अभी भी दूरस्थ सेवाओं के अर्थ में "वेब सेवाएं" लागू कर सकते हैं जिन्हें आसानी से नेटवर्क पर उपभोग किया जा सकता है। आरईएसटी को जैक्स-आरएस के मानकों के जावा परिवार में भी मानकीकृत किया गया है। कुछ लोकप्रिय जेएक्स-आरएस कार्यान्वयन में सीएक्सएफ, जर्सी और रीस्टलेट शामिल हैं।

अंत में, बाइनरी एन्कोडिंग का उपयोग करने वाले ब्लॉक पर कुछ नए बच्चे हैं। वे Google प्रोटोकॉल बफर और अपाचे थ्रिफ्ट हैं। उनका मुख्य लक्ष्य प्रदर्शन के साथ-साथ अन्य भाषाओं (जावा, सी #, एरलैंड, पर्ल ...) के लिए व्यापक समर्थन है।

आज वेब सेवा विकसित करते समय, प्रश्न होना चाहिए: - क्या मुझे प्रदर्शन के बारे में परवाह है? - क्या मैं कई अलग-अलग भाषाओं से सेवा तक पहुंचना चाहता हूं? - क्या मुझे मोबाइल के अनुकूल चाहिए?

ये आपकी पसंद का मार्गदर्शन करने में आपकी सहायता कर सकते हैं। इसके अलावा, मैं अपनी निर्भरताओं को कम से कम रखना पसंद करता हूं। इसका मतलब है कि मैं कुछ ऐसा ले जाऊंगा जो जेआरई या जेडीके के मूल निवासी है। जेएक्स-डब्ल्यूएस या जेएक्स-आरएस संदर्भ कार्यान्वयन।

+0

इसके लिए धन्यवाद, बहुत जानकारीपूर्ण। –

+0

क्या आप 2016 के लिए इस उत्तर को अपडेट कर सकते हैं? क्या बदल गया है और नए मानकों क्या हैं? क्या आपके पास कोई ब्लॉग पोस्ट है जो उस पर अधिक जानकारी देता है? – gonephishing

+0

मैं कहूंगा कि जेएसओएन, आरईएसटी, और जर्सी जाने का रास्ता है: यह अधिक हल्का और उपयोग करने में आसान है। –

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