मैं सर्वर साइड पर एक वर्ग है: ForumEntry, और मैं एक वेब सेवा जो ForumEntry की सूची लौटाता है:जेएक्स-डब्ल्यूएस क्लाइंट में सर्वर साइड क्लास का पुन: उपयोग कैसे करें?
@WebService(name="ForumGeneral",serviceName="ForumGeneralService")
public class ForumGeneralService {
@WebMethod
public List<ForumEntry> getLatestTopics(String keyword,int count){
...
}
}
wsimport का उपयोग करते समय वेब सेवा ग्राहक उत्पन्न करने के लिए, यह ठीक खत्म, लेकिन एक नए ForumEntry प्रकार की बनाई वेब सेवा के आधार पर। यह समझ में आता है, क्योंकि वेब सेवा की प्रकृति यह है कि क्लाइंट और सर्वर पक्ष decoupled हैं।
लेकिन अगर मैं सर्वर पक्ष फोरमएन्ट्री का पुन: उपयोग करना चाहता हूं और क्लाइंट साइड डमी क्लास से बचने के लिए क्या करना चाहता हूं?
मुझे एक पोस्ट मिली: http://jamablog.blogspot.com/2007/08/how-to-make-jax-ws-client-reuse_22.html।
विचार का पालन करें, मैं अपने सर्वर साइड ForumEntry वर्ग के लिए JAXB एनोटेशन कहा:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "forumEntry", propOrder = {
"forumId",
"forumName",
})
public class ForumEntry
तो schemagen इस्तेमाल किया प्रकरण फ़ाइल उत्पन्न करने के लिए, तो यह गुजर बी पैरामीटर का उपयोग कर wsimport करने के लिए। लेकिन मुझे मिल गया उत्पन्न प्रकरण फ़ाइल के रूप में समस्या 'forumEntry' के लिए प्रविष्टियां हैं:
[ERROR] SCD "~forumEntry" didnt match any schema component
मुझे लगता है कि इसका मतलब है 'forumEntry डबल्यूएसडीएल है, जो सही है में नहीं दिख रहा है:
<message name="getLatestTopics">
<part name="parameters" element="tns:getLatestTopics"></part>
</message>
<message name="getLatestTopicsResponse">
<part name="parameters" element="tns:getLatestTopicsResponse"></part>
</message>
तो सभी करते हैं सर्वर साइड क्लास का पुन: उपयोग करने के लिए यहां भागों को एक साथ फिट किया गया है?
धन्यवाद, लेकिन क्या आप अधिक विशिष्ट हो सकते हैं? मैं एक सूची लौट रहा हूं, जबकि फोरमेंट्री एक प्रकार है। दोनों पक्ष फोरमेट्री क्लास का उपयोग कैसे कर सकते हैं? धन्यवाद। – Andrew
आपको क्लाइंट साइड पर फोरमएन्ट्री क्लास जेनरेट करना होगा और इसका इस्तेमाल करना होगा। –
हालांकि यह सवाल पुराना है, लेकिन मेरे पास समान प्रश्न है। समस्या यह है कि मेरे पास पहले से ही कुछ वर्गों का उपयोग डेटा प्रकार के रूप में सर्वर साइड कोड का समूह है, और उन वर्गों में उपयोगिता विधियों का एक गुच्छा भी है। यदि सर्वर पक्ष क्लाइंट से जेनरेट क्लास का उपयोग करने के लिए बदल जाता है, तो यह एक बड़ा काम होगा ... –