2013-05-29 5 views
5

पर लागू नहीं किया जा सकता है मैंने apache-cxf-2.7.4 के साथ एक वेब सेवा बनाई है। मैंने अपनी परियोजना में उत्पादित कक्षाओं में प्रवेश किया। पुस्तकालयों मैं अपने प्रोजेक्ट में कर रहे हैं:क्लास javax.xml.ws में कन्स्ट्रक्टर सेवा। सेवा को

  • math3-कॉमन्स-3.2.jar
  • Xstream-1.4.4.jar
  • jaxws-api-2.2.5.jar

मैं निम्नलिखित त्रुटि है:

constructor Service in class javax.xml.ws.Service cannot be applied to given types; 
    required: java.net.URL,javax.xml.namespace.QName 
    found: java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[] 
    reason: actual and formal argument lists differ in length 

उत्तर

10

समस्या JAX-WS एपीआई के संस्करण है। आपके एप्लिकेशन के क्लासलोडर ने पहले जावा एसई या जावा ईई में शामिल संस्करण को लोड किया था।

जावा एसई 6 या जावा ईई 5, जेएक्स-डब्ल्यूएस एपीआई 2.1 के लिए। javax.xml.ws.Service में कंस्ट्रक्टर्स:

javax.xml.ws.Service.Service(URL, QName) 

जावा SE 7 या जावा ईई 6, JAX-WS एपीआई 2.2 के लिए। javax.xml.ws.Service में कंस्ट्रक्टर्स:

  1. उपयोग जावा SE 7 या जावा ईई 6.

  2. :

    javax.xml.ws.Service.Service(URL, QName) 
    javax.xml.ws.Service.Service(URL, QName, WebServiceFeature...) // You need this! 
    

    तीन संभावित हल कर रहे हैं (चाहे वह एक वेब अनुप्रयोग या स्वसंपूर्ण अनुप्रयोग है पर निर्भर करता है)

  3. इसके बजाय जेएक्स-डब्ल्यूएस 2.1 अनुपालन कोड उत्पन्न करने के लिए तर्क -frontend jaxws21 के साथ पुन: चलाएं।

  4. पहले लोड के लिए क्लासलोडर को एप्लिकेशन में शामिल कक्षाओं में बदलें।

2

तो Maven का उपयोग कर आप का निर्माण करने के लिए इस निष्पादन विन्यास को

<defaultOptions> 
    <extraargs> 
     <extraarg>-frontend</extraarg> 
     <extraarg>jaxws21</extraarg> 
    </extraargs> 
</defaultOptions> 

(धन्यवाद पॉल वर्गास के लिए मुझे सही दिशा में इशारा करते हुए के लिए) जोड़ना चाहिए।

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