2011-08-04 8 views
10

के बजाय मैवेन नेटवेन्स 7 का उपयोग मैवेन 2.2.1 और जैक्सव्स-मेवेन-प्लगइन 1.12 के साथ कर रहा हूं। ग्लासफ़िश 3.1 पर कोड तैनात किया गया है - या जब मैं इसे संकलित करने के लिए प्राप्त करूंगा :)जेएक्स-डब्ल्यूएस 2.1 का उपयोग कर मैवेन-डब्ल्यूएस 2.1

जब मैं प्रोजेक्ट का निर्माण करता हूं, तो wsimport अपेक्षित रूप से चलता है और प्रदान की गई डब्लूएसडीएल से स्रोत फ़ाइलों को उत्पन्न करता है। समस्या यह है कि निर्माण संकलन चरण के दौरान निम्नलिखित तीन अपवादों के साथ विफल रहता है। इस शोध से, मैं देखता हूं कि इन रचनाकारों को जेएक्स-डब्ल्यूएस 2.1 से जेएक्स-डब्ल्यूएस 2.2 में जोड़ा गया था। मेरा विश्वास यह है कि wsimport JAX-WS 2.1 का उपयोग कर रहा है और संकलन JAX-WS 2.2 का उपयोग कर रहा है।

क्या कोई मेरी संदेह की पुष्टि कर सकता है? या, यदि मैं गलत हूं, तो क्या आपको पता चल सकता है कि इसका क्या कारण हो सकता है?

धन्यवाद।


UPDATED/समस्या के स्पष्टीकरण वेब सेवा ग्राहक javax.xml.ws.Service प्रदान करता है और त्रुटि फेंक दिया जाता है जब ग्राहक तीन तर्क के साथ सुपर वर्ग निर्माता कॉल करने के लिए कोशिश करता है। चूंकि सुपर क्लास में तीन तर्कों के साथ कोई कन्स्ट्रक्टर नहीं है, इसलिए यह विफल हो जाता है।

javax.xml.ws.Service जेडीके एसई 1.6 और जेएक्स-डब्ल्यूएस 2.1 में गलत संस्करण के रूप में पाया जाता है।

javax.xml.ws.Service JAX-WS 2.2 में सही संस्करण के रूप में पाया जाता है।


त्रुटि तीन बार होता है, क्योंकि यह तीन ओवरराइड कंस्ट्रक्टर्स में है, लेकिन यह एक ही त्रुटि तो मैं यह केवल एक बार शामिल किया है।

cannot find symbol 
symbol : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[]) 
location: class javax.xml.ws.Service 


<plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jaxws-maven-plugin</artifactId> 
      <version>1.12</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>wsimport</goal> 
        </goals> 
        <configuration> 
         <wsdlFiles> 
          <wsdlFile>*path to WSDL*</wsdlFile> 
         </wsdlFiles> 
         <wsdlLocation>*url to WSDL*</wsdlLocation> 
         <staleFile>${project.build.directory}/jaxws/stale/BudgetCheckingServiceService.stale</staleFile> 
        </configuration> 
        <id>wsimport-generate-BudgetCheckingServiceService</id> 
        <phase>generate-sources</phase> 
       </execution> 
      </executions> 
      <dependencies> 
       <dependency> 
        <groupId>com.sun.xml.ws</groupId> 
        <artifactId>jaxws-tools</artifactId> 
        <version>2.2.6-SNAPSHOT</version>        
       </dependency> 

       <dependency> 
        <groupId>javax.xml</groupId> 
        <artifactId>webservices-api</artifactId> 
        <version>1.4</version> 
       </dependency> 
      </dependencies> 
      <configuration>      
       <sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport</sourceDestDir> 
       <xnocompile>true</xnocompile> 
       <verbose>true</verbose> 
       <extension>true</extension> 
       <catalog>${basedir}/src/jax-ws-catalog.xml</catalog> 
      </configuration> 
     </plugin> 

उत्तर

6

आप jaxws-maven-plugin-1.12's pom में देख सकते हैं, यह निर्भरता jaxws उपकरण 2.1.7-है। खैर, आपने इसे पोम के माध्यम से अधिक से अधिक सवार कर दिया है। लेकिन, यह ओवर-राइडिंग तब तक काम करता है जब तक ओवर-रोड संस्करण (2.2.6-SNAPSHOT) प्लगइन के डिफ़ॉल्ट संस्करण (2.1.7) के साथ एपीआई-संगत है।

स्पष्ट रूप से, आपकी टिप्पणियों के आधार पर, वे एपीआई-संगत नहीं हैं। इसलिए, जैसा कि मैंने देखा यह काम नहीं करेगा। Here का पालन करने के लिए एक संदर्भ है।

jxws-tools के सटीक संस्करण को निर्धारित करने के लिए -X ध्वज के साथ mvn इंस्टॉल करें इस प्लगइन द्वारा उपयोग किया जाता है। यदि आपको कोई फर्क नहीं पड़ता है तो पेस्टबिन करें, तो हम भी एक नजर डाल सकते हैं!

संपादित करें: एक चीज जो आप कर सकते हैं; maven-jaxws-plugin के jaxws-tools dep को अपने आवश्यक संस्करण में अपग्रेड करें। और फिर एपीआई-असंगतता (जैसे कि कन्स्ट्रक्टर समस्याएं) के कारण होने वाली समस्याओं को ठीक करें। फिर upstream पर पैच भेजें।

+0

त्वरित उत्तर के लिए बहुत बहुत धन्यवाद! मैं सचमुच इस समय दरवाजा बाहर कर रहा हूं और कल सुबह तक इसे फिर से नहीं प्राप्त कर सकता। मैं कल जो कुछ कहता हूं वह करूँगा और यहां जवाब दूंगा। एक बार फिर, बहुत बहुत धन्यवाद। – Sean

+0

यहां मेरे डिबगिंग आउटपुट के लिए मेरा पेस्टबिन है। काश मैं एक मेवेन विशेषज्ञ था, लेकिन मैं अभी भी सीख रहा हूं कि यह कैसे करता है। मुझे इसकी व्याख्या करने में मदद करने के लिए धन्यवाद। http://pastebin.com/FvxQXWyU – Sean

+0

भी, अगर यह मदद करता है तो मेरा पोम यहां है। http://pastebin.com/Y3hZB9TJ – Sean

1

मुझे एक ही समस्या थी और इसे webservices-api.jar फ़ाइल को %JDK_HOME%/jre/lib/endorsed फ़ोल्डर में डालकर हल किया गया था।

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