我想使用maven和jaxb从一个包含2个模式和一些具有相同名称的元素的wsdl文件生成客户端。在尝试执行编译时,我遇到了以下错误:
我尝试重新命名产生错误的元素,但是这样一来,我的Spring客户端就可以接收到正确的SOAP消息,但它无法正确地填充响应对象(所有属性都为null)。我猜问题可能来自于重命名响应类,所以我正在尝试生成不同的包,保留所有类的原始名称。
当我使用这些绑定文件进行编译时,仍然出现相同的错误。所以我认为可能不正确。
你发现了错误吗?
谢谢。
Two declarations cause a collision in the ObjectFactory class.
WSDL模式:
<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>
我尝试重新命名产生错误的元素,但是这样一来,我的Spring客户端就可以接收到正确的SOAP消息,但它无法正确地填充响应对象(所有属性都为null)。我猜问题可能来自于重命名响应类,所以我正在尝试生成不同的包,保留所有类的原始名称。
为了做到这一点,我编写了下面的bindings文件,但我不知道哪里出了问题导致其无法工作。
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>
当我使用这些绑定文件进行编译时,仍然出现相同的错误。所以我认为可能不正确。
你发现了错误吗?
谢谢。