我尝试使用CXF来使用SOAP Web服务。我遇到的问题是JAXB在尝试使用WSDL时会抛出。它不喜欢的部分是:
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax"/>
<xs:any minOccurs="1" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax"/>
</xs:sequence>
它给出错误:
财产&#34;任何&#34;已定义。使用
<jaxb:property>
解决此冲突。
通过阅读this之类的其他问题,可以定义外部绑定文件来解决错误。问题是我不确定如何在cxf-codegen-plugin
内执行此操作。谁能指出我该怎么做?
这是我的pom.xml的相关部分
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.1.2</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/DataGeneratorInbox.wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
答案 0 :(得分:2)
问题是我不确定如何在
cxf-codegen-plugin
内执行此操作。谁能指出我该怎么做?
您可以使用<bindingFiles>
属性在cxf-codegen-plugin
中添加绑定文件,如下所示:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.1.2</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/DataGeneratorInbox.wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
<bindingFiles>
<bindingFile><!-- path to your file --></bindingFile>
</bindingFiles>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>