Binding wsImport:jaxb nameXmlTransform不工作:已在使用同名的类/接口
我需要从WSDL文件生成Java类 我正在使用以下配置的Binding wsImport:jaxb nameXmlTransform不工作:已在使用同名的类/接口,binding,xsd,jaxb,wsdl2java,wsimport,Binding,Xsd,Jaxb,Wsdl2java,Wsimport,我需要从WSDL文件生成Java类 我正在使用以下配置的jaxws-maven插件插件: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxws-maven-plugin</artifactId> <version>2.5</version> <executions> <exe
jaxws-maven插件
插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>wsimportPhase</id>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<keep>true</keep>
<verbose>true</verbose>
<packageName>my.package.name</packageName>
<wsdlFiles>
<wsdlFile>${basedir}/wsdl/myWSDL.wsdl</wsdlFile>
</wsdlFiles>
<wsdlLocation>wsdl/myWSDL.wsdl</wsdlLocation>
<bindingDirectory>wsdl</bindingDirectory>
<bindingFiles>
<bindingFile>myBinding.xml</bindingFile>
</bindingFiles>
<sourceDestDir>${basedir}/src/main/java</sourceDestDir>
</configuration>
</execution>
</executions>
</plugin>
<?xml version="1.0" encoding="UTF-8"?>
<jaxws:bindings version="2.1"
schemaLocation="myWSDL.wsdl"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema/xs:import">
<jaxb:bindings schemaLocation="importedXSD_1.xsd">
<jaxb:bindings node="xs:complexType[@name='DuplicatedType']">
<jaxb:schemaBindings>
<jaxb:nameXmlTransform>
<jaxb:typeName suffix="Suffix1"/>
<jaxb:elementName suffix="Suffix1"/>
</jaxb:nameXmlTransform>
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="importedXSD_2.xsd">
<jaxb:bindings node="xs:complexType[@name='DuplicatedType']">
<jaxb:schemaBindings>
<jaxb:nameXmlTransform>
<jaxb:typeName suffix="Suffix2"/>
<jaxb:elementName suffix="Suffix2"/>
</jaxb:nameXmlTransform>
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
</jaxws:bindings>
</jaxws:bindings>
XPath在xsd中正确地找到了所需的complexType,因此我不知道如何修复它。我找到了结合这两个问题中解释的解决方案的解决方案: 我已采取以下步骤:
<?xml version="1.0" encoding="UTF-8"?>
<jaxws:bindings version="2.1"
schemaLocation="myWSDL.wsdl"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema/xs:import">
</jaxws:bindings>
</jaxws:bindings>
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings version="1.0"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<jaxb:bindings schemaLocation="importedXSD_1.xsd" node="xsd:complexType[@name='DuplicatedType']">
<jaxb:class name="DuplicatedTypeSuffix1"/>
</jaxb:bindings>
<jaxb:bindings schemaLocation="importedXSD_2.xsd" node="xsd:complexType[@name='DuplicatedType']">
<jaxb:class name="DuplicatedTypeSuffix2"/>
</jaxb:bindings>
</jaxb:bindings>
jaxb-binding.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jaxws:bindings version="2.1"
schemaLocation="myWSDL.wsdl"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<jaxws:bindings node="wsdl:definitions/wsdl:types/xs:schema/xs:import">
</jaxws:bindings>
</jaxws:bindings>
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings version="1.0"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<jaxb:bindings schemaLocation="importedXSD_1.xsd" node="xsd:complexType[@name='DuplicatedType']">
<jaxb:class name="DuplicatedTypeSuffix1"/>
</jaxb:bindings>
<jaxb:bindings schemaLocation="importedXSD_2.xsd" node="xsd:complexType[@name='DuplicatedType']">
<jaxb:class name="DuplicatedTypeSuffix2"/>
</jaxb:bindings>
</jaxb:bindings>
标记中声明了两个绑定文件