2009-11-03 13 views
10

मेरे पास "तर्क" वर्गों (जैसे CheckAuthenticationDataLogic.java, GetVocabulariesLogic.java) के साथ एक पैकेज है। और एक और वर्ग - ApiService.java wsdl उत्पन्न करने के लिए प्रयोग किया जाता है। ApiService.java इस तरह के तरीकों से भरा है:जावा क्लास से स्रोत WSDL उत्पन्न करें स्रोत

/** 
    * Check authentication data. 
    * @param contractNumber - number of contract. 
    * @param msisdn - msisdn. 
    * @param superPassword - super password. 
    * @return result of authentication. 
    */ 
    @WebMethod 
    @WebResult(name = "result") 
    public CheckAuthenticationDataResult checkAuthenticationData(@WebParam(name = "contractNumber") 
                   final String contractNumber, 
                   @WebParam(name = "msisdn") 
                   final String msisdn, 
                   @WebParam(name = "superPassword") 
                   final String superPassword) { 
    return runLogic(new CheckAuthenticationDataLogic(contractNumber, msisdn, superPassword)); 
    } 

जैसा कि आप देख यह सिर्फ एक प्रॉक्सी तरीकों है ... तो मैं ApiService.java लेखन के बिना दो बार एक ही काम कर रही से बचने और तर्क वर्गों से सही डबल्यूएसडीएल उत्पन्न करना चाहते हैं । इस उद्देश्य के लिए कोई उपकरण या पुस्तकालय मौजूद है?

उत्तर

16

wsgen उपकरण जेएक्स-डब्लूएस वेब सेवाओं में उपयोग किए गए जेएक्स-डब्ल्यूएस पोर्टेबल कलाकृतियों को उत्पन्न करता है। ध्यान दें कि विकास के समय आपको डब्लूएसडीएल उत्पन्न करने की आवश्यकता नहीं है क्योंकि जब आप अपनी सेवा तैनात करते हैं तो JAXWS रनटाइम स्वचालित रूप से आपके लिए डब्लूएसडीएल उत्पन्न करेगा।

आप JAX-WS आरआई documentation जाँच करने के लिए और विशेष रूप से samples (fromjava नमूना करने के लिए एक विशेष ध्यान देना) कर सकते हैं।

+0

मुझे "थ्रेड में अपवाद" मुख्य "java.lang.NoClassDefFoundError" त्रुटि है और ऐसा इसलिए होता है क्योंकि यह वर्ग क्लासपाथ में नहीं है लेकिन दूरस्थ पुस्तकालय में (पुस्तकालयों को बस किसी अन्य फ़ोल्डर में रखा जाता है)। मैं अपने पुस्तकालय में इस पुस्तकालयों को कैसे शामिल कर सकता हूं? – Oleksandr

+0

wsgen -wsdl: Xsoap1.2 -extension -d testGen -cp/home/vidocq/वर्कस्पेस/ws-crp/build/output/ग्रहण-वर्ग com.crp.logic.CheckAuthenticationDataLogic – Oleksandr

+0

'wsgen चलाने पर आपको क्या त्रुटि मिलती है '-cp' के साथ? कृपया अपने प्रोजेक्ट कॉन्फ़िगरेशन (जहां स्रोत स्थित हैं) और ट्रेस पर विवरण के साथ अपना प्रश्न अपडेट करें। –

0

मेट्रो (http://metro.java.net/) वेब सेवा स्टैक एनोटेटेड जावा से डब्लूएसडीएल उत्पन्न करने के लिए एक उपकरण (wsgen) प्रदान करता है।

+1

आप की आवश्यकता नहीं है मेट्रो (मेट्रो = JAX-WS आरआई + WSIT/टेंगो), आप केवल JAX-WS आरआई जो जावा 6 में शामिल है की जरूरत है इसलिए यदि आप जावा 6 का उपयोग कर रहे हैं, तो आपको वास्तव में कुछ भी चाहिए नहीं। –

+0

@ पास्कल थिवेंट: आप बिल्कुल सही हैं। हालांकि, मुझे लगता है कि जेएसई द्वारा प्रदान की गई जेएक्स-डब्ल्यूएस आरआई की तुलना में मेट्रो आमतौर पर अधिक अद्यतित है। –

+0

ठीक है, जेडीके 6 अपडेट रिलीज 14 में जेएक्स-डब्ल्यूएस 2.1.6 आरआई है जो काफी सभ्य है। लेकिन वास्तव में, मेट्रो 1.5 में जेएक्स-डब्ल्यूएस 2.1.7 शामिल है (जिसे मामूली रिलीज के रूप में माना जाता है, http://weblogs.java.net/blog/2009/04/21/jax-ws-ri-217metro-15- जारी)। हालांकि, यदि आप जेएक्स-डब्ल्यूएस आरआई 2.1.7 का उपयोग करना चाहते हैं, तो आप इसे https://jax-ws.dev.java.net से डाउनलोड कर सकते हैं, आपको अभी भी मेट्रो की आवश्यकता नहीं है। लेकिन ईमानदारी से, मैं अनुमोदित निर्देशिका तंत्र के साथ खेलना परेशान नहीं होगा। –

3

Axis2 एक और विकल्प, विशेष रूप से java2wsdl आदेश/प्लगइन

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