मैं जब मैं संकलन पर अमल करने की कोशिश Maven और अंदर 2 स्कीमा और अलग स्कीमाअनुकूलित जावा पैकेज JAXB wsimport
से एक ही नाम के साथ कुछ तत्वों के साथ WSDL फ़ाइल से JAXB के साथ एक ग्राहक उत्पन्न करने के लिए कोशिश कर रहा हूँ मैं 'm अगले त्रुटि मिल रही है:
Two declarations cause a collision in the ObjectFactory class.
डबल्यूएसडीएल स्कीमा:
<wsdl:types>
<schema targetNamespace="http://ws.services" xmlns="http://www.w3.org/2001/XMLSchema">...</schema>
<schema targetNamespace="http://ws.models" xmlns="http://www.w3.org/2001/XMLSchema">...</schema>
</wsdl:types>
मैं तत्वों का नाम बदलने की कोशिश की है कि त्रुटि उत्पन्न करें, लेकिन तो मेरे वसंत ग्राहक को सही SOAP संदेश प्राप्त होता है, लेकिन यह प्रतिक्रिया ऑब्जेक्ट को ठीक से पॉप्युलेट नहीं करता है (इसके सभी गुण शून्य हैं)। मुझे लगता है कि समस्या प्रतिक्रिया कक्षाओं का नाम बदलने से आ सकती है, इसलिए मैं सभी वर्गों के मूल नाम को रखने के लिए अलग-अलग पैकेज उत्पन्न करने की कोशिश कर रहा हूं।
ऐसा करने के लिए, मैंने अगली बाइंडिंग फ़ाइल लिखी लेकिन मुझे नहीं पता कि मैं क्या गलत कर रहा हूं कि यह काम नहीं कर रहा है।
bindings.xml फ़ाइल:
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings version="2.1"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<jaxb:bindings schemaLocation="mywsdl.wsdl#types?schema1"
node="/xs:schema[@targetNamespace='http://ws.services']">
<jaxb:schemaBindings>
<jaxb:package name="package1" />
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="mywsdl.wsdl#types?schema2"
node="/xs:schema[@targetNamespace='http://ws.models']">
<jaxb:schemaBindings>
<jaxb:package name="package2" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
Maven फ़ाइल में मेरे विन्यास हिस्सा है, बगल में है सिर्फ मामले में यह उपयोगी है:
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
<configuration>
<wsdlLocation>wsdl/mywsdl.wsdl</wsdlLocation>
<wsdlDirectory>src/main/resources/wsdl</wsdlDirectory>
<wsdlFiles>
<wsdlFile>mywsdl.wsdl</wsdlFile>
</wsdlFiles>
<bindingDirectory>src/main/resources/wsdl</bindingDirectory>
<bindingFiles>
<bindingFile>bindings.xml</bindingFile>
</bindingFiles>
<packageName>original.package</packageName>
<sourceDestDir>${basedir}/src/main/java</sourceDestDir>
</configuration>
मैं इस बाइंडिंग फाइलों के साथ संकलन जब , वही त्रुटि प्रकट होती है। तो मुझे लगता है कि शायद यह सही नहीं है।
क्या आपको कोई गलती मिलती है?
धन्यवाद।
बस एक टिप: यदि आप "bindingFiles" विन्यास खंड को हटा सकते हैं पूरी तरह से अगर आप src/jaxws में अपने सभी बाध्यकारी फ़ाइलें रख! फिर उन्हें जैक्सव्स-मेवेन-प्लगइन द्वारा स्वचालित रूप से उठाया जाएगा। – headcr4sh