2010-10-07 9 views
11

का उपयोग करने के लिए अंतर और दार्शनिक या अन्यथा, जावा कोड से सेवा और डिस्पैच कक्षाओं का उपयोग करके एक वेब सेवा को कॉल करने के बीच अंतर, दार्शनिक या अन्यथा क्या है, एक SOAPConnection वर्ग बनाम?जेएक्स-डब्ल्यूएस बनाम साएज स्टाइल,

उदाहरण के लिए

, कुछ इस तरह:

SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance(); 
SOAPConnection soapConnection = scf.createConnection(); 
SOAPMessage reply = soapConnection.call(soapMessage, url); 

मोटे तौर पर इन पंक्तियों के साथ कुछ बनाम?

svc = Service.create(url, serviceName); 
Dispatch<SOAPMessage> dispatch = svc.createDispatch(portName, SOAPMessage.class, service.Mode.MESSAGE); 
SOAPMessage reply = (SOAPMessage)dispatch.invoke(soapMessage); 

इनके बीच क्या अंतर है, और दूसरे पर एक दृष्टिकोण का चयन क्यों करें?

उत्तर

1

मुझे एहसास है कि अंत में, डिस्पैच बस कार्यों को SAAJ परत में प्रस्तुत करता है। हालांकि, मैं इसकी पुष्टि करने में सक्षम नहीं हूं।

बेहतर अभ्यास क्या है, इसके परिप्रेक्ष्य से, मुझे लगता है कि डिस्पैच पद्धति अधिक उचित है क्योंकि यह निचले स्तर SAAJConnection API के साथ काम करने के कुछ ओवरहेड को दूर करता है। जैसे - कनेक्शन उदाहरण पर एक करीबी() करने की कोई आवश्यकता नहीं है, तो प्रेषण संदर्भ को SOAPConnection उदाहरण के विपरीत फिर से बनाया जाना आवश्यक नहीं है।

+0

तुम्हारा मतलब है;। Saaj निचले स्तर आप अधिक spesific हो सकता है लेकिन आप इसका अर्थ है कि बहुत सी चीजें लिखने के लिए, लेकिन जेएक्सडब्ल्यूएस अधिक सरल है लेकिन आप अधिक स्पेशिफिश नहीं कर सकते? क्या मैंने आपको सही तरीके से प्राप्त किया? – PeerNet

3

निम्न पंक्ति जावा एसओए कुकबुक से अंश हैं -। ओ रेली

"सोप कनेक्शन आप एक URL के अंत में एक संसाधन के लिए एक सोप संदेश भेजने के लिए अनुमति देता है यह किसी भी में उपयोग करने के लिए सुविधाजनक है स्थिति, लेकिन जरूरी है कि अगर सेवा परिभाषित डब्लूएसडीएल नहीं है। ऐसा इसलिए है क्योंकि सेवा.क्रेट को कॉल करने के लिए डब्लूएसडीएल के स्थान में गुजरना आवश्यक है। यह दुर्लभ हो सकता है कि आपके पास एसओएपी-आधारित सेवा के साथ डब्लूएसडीएल नहीं है , लेकिन ऐसा होता है, और आप तैयार हो जाएंगे।

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

• endpoint यूआरएल connection.call विधि के लिए पारित किया या तो एक स्ट्रिंग या एक java.net.URL हो सकता है "

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