У меня возникла проблема, похожая на эту https://stackoverflow.com/questions/13422253/xjc-two-declarations-cause-a-collision-in-the-objectfactory-class, и кажется, что привязка абсолютно не влияет на схему wsdl.независимо от того, как я настроил schemaLocation
, node
, xpath
, никакого эффекта.Вдобавок к этим сообщениям об ошибках не вводите слишком много информации.
Вот конфигурация плагина maven:
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.3</version>
<configuration>
<verbose>true</verbose>
<xdebug>true</xdebug>
<detail>true</detail>
<bindingFiles>
<bindingFile>${project.basedir}/src/main/resources/bindings.xjb</bindingFile>
</bindingFiles>
<wsdlUrls>
<wsdlUrl>https://cdx.dealerbuilt.com/0.99a/Api.svc?wsdl</wsdlUrl>
</wsdlUrls>
<args>
<arg>-B-XautoNameResolution</arg>
</args>
<vmArgs>
<vmArg>-Djavax.xml.accessExternalDTD=all</vmArg>
<vmArg>-Djavax.xml.accessExternalSchema=all</vmArg>
</vmArgs>
<keep/>
<sourceDestDir>${project.basedir}/src/main/java/</sourceDestDir>
</configuration>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
</plugin>
Вот определение привязки:
<jaxb:bindings>
<jaxb:schemaBindings>
<jaxb:nameXmlTransform>
<jaxb:typeName prefix="Type_"/>
<jaxb:elementName suffix="Element_"/>
<jaxb:anonymousTypeName suffix="Anon_"/>
<jaxb:modelGroupName suffix="Group_"/>
</jaxb:nameXmlTransform>
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxws:bindings node="//xs:element[@name=asd]">
<jaxb:schemaBindings>
<jaxb:nameXmlTransform>
<jaxb:elementName suffix="Elem"/>
</jaxb:nameXmlTransform>
</jaxb:schemaBindings>
</jaxws:bindings>
<jaxb:bindings schemaLocation="https://cdx.dealerbuilt.com/0.99a/Api.svc?xsd=xsd14">
<jaxws:bindings node="//xs:element[@name=asd]">
<jaxb:schemaBindings>
<jaxb:nameXmlTransform>
<jaxb:elementName suffix="Elem"/>
</jaxb:nameXmlTransform>
</jaxb:schemaBindings>
</jaxws:bindings>
</jaxb:bindings>
Результатчто я заканчиваю с кучей:
com.sun.istack.SAXParseException2; systemId: https://cdx.dealerbuilt.com/0.99a/Api.svc?xsd=xsd14; lineNumber: 1; columnNumber: 913; Two declarations cause a collision in the ObjectFactory class.
com.sun.istack.SAXParseException2; systemId: https://cdx.dealerbuilt.com/0.99a/Api.svc?xsd=xsd8; lineNumber: 1; columnNumber: 14330; Two declarations cause a collision in the ObjectFactory class.
com.sun.istack.SAXParseException2; systemId: https://cdx.dealerbuilt.com/0.99a/Api.svc?xsd=xsd4; lineNumber: 1; columnNumber: 11847; Two declarations cause a collision in the ObjectFactory class.