2013-01-14 6 views
7

टिप्पणी के साथ एक जावा इंटरफ़ेस को परिभाषित किया है @WebService कोड जो चला गया ठीकjax-ws endpointinterface के बारे में

उदाहरण संकलित: अब

@WebService 
public interface HelloWorldIfc{ 

मैं

के रूप में एक endpointinterface को परिभाषित करने की कोशिश की
@WebService (endpointInterface = "com.ws.HelloWorldIfc") 
    public interface HelloWorldIfc{ 

यह संकलित ठीक भी

तो - क्या मुझे इंटरफ़ेस पर या समापन कक्षा पर एंडपॉइंट इंटरफ़ेस को परिभाषित करना चाहिए?
किसी भी उपयोग की यह विशेषता है - इसका उद्देश्य क्या है?
यदि मैं इसे परिभाषित नहीं करता तो क्या होता है - मैं क्या खो सकता हूं?
धन्यवाद,
सतीश

उत्तर

15

The JAX-WS Specification इस cleas बनाता खंड 3.3 में, पेज 30:

आप को लागू करने वर्ग और इंटरफ़ेस के बीच अलग करने endpointInterface विशेषता का उपयोग कर सकते हैं। असल में, यह निर्धारित करता है कि जब आप सेवा को तैनात करते हैं और wsdl:definition उत्पन्न होता है तो आपके wsdl:portType पर मैप किया जाएगा।

आप एनोटेट वर्ग के endpointInterface सभी सार्वजनिक तरीकों wsdl:operation को मैप किया जाएगा नहीं परिभाषित करते हैं (जब तक आप @WebMethod एनोटेशन के साथ इस व्यवहार को प्रभावित नहीं है) कर हैं।

आप कर हैं परिभाषित endpointInterface, यह कुछ प्रकार को इंगित करने के है जो एनोटेट वर्ग औजार (या, ठीक है, अपने आप में अपने प्रश्न में प्रदर्शन के रूप में)। फिर, एनोटेटेड क्लास के तरीकों की बजाय wsdl:portType मैपिंग के लिए इस प्रकार के सार्वजनिक तरीकों का उपयोग किया जाता है।

सारांश में: endpointInterface की परिभाषा ही समझ में आता है अगर आप एक को लागू करने वर्ग पर @WebService उपयोग करें और अपनी डबल्यूएसडीएल इंटरफेस यह लागू करता है के आधार पर उत्पन्न किया जा करना चाहते हैं। आपकी वर्तमान सेटिंग में जहां आप इंटरफेस com.ws.HelloWorldIfc पर एनोटेशन का उपयोग करते हैं, वास्तव में कोई अंतर नहीं है। तो आप इसे छोड़कर कुछ खोना नहीं है। एनोटेशन उपयोगी है यदि आप अपनी कार्यान्वयन कक्षा को सार्वजनिक तरीकों को प्रदान करना चाहते हैं जो जेनरेट डब्लूएसडीएल में नहीं जाना चाहिए।

+1

आपको बहुत बहुत धन्यवाद - अपने स्पष्टीकरण भावना का एक बहुत बनाया मैं एक पाठ संपादक में अपनी टिप्पणी की नकल की और हटाया/कांट छांट और अंक उल्लेख पर ध्यान केंद्रित - यह अब विशेष रूप से समझ में आता है - "एनोटेशन उपयोगी है अगर आप चाहते हैं अपने कार्यान्वयन वर्ग सार्वजनिक विधियों को प्रदान करने के लिए जो जेनरेट डब्लूएसडीएल में नहीं जाना चाहिए "धन्यवाद –

0

परिभाषित करने के लिए endpointInterface उपयोगी है, क्योंकि इंटरफ़ेस methodes की @WebParam एनोटेशन उन्हें कार्यान्वयन कक्षा में फिर से परिभाषित करने के बिना काम कर रहे हैं।

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