我尝试通过多个wsdl文件的CXF wsdl2java生成类。但是我不能在项目的相对路径中设置这些wsdl文件的wsdl位置。我见过这样设置每个wsdl的选项的解决方案:
<configuration>
<sourceRoot>${project.build.directory}/generated-sources/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${project.basedir}/src/main/resources/wsdl/FooService.wsdl</wsdl>
<wsdlLocation>classpath:wsdl/FooService.wsdl</wsdlLocation>
</wsdlOption>
</wsdlOptions>
</configuration>但我不想在每种情况下都这样做。我的代码中有这样的代码:
<configuration>
<sourceRoot>${generated.dir}</sourceRoot>
<defaultOptions>
<noAddressBinding>true</noAddressBinding>
<bindingFiles>
<bindingFile>${basedir}/src/main/resources/META-INF/cxf/date-binding.xml
</bindingFile>
</bindingFiles>
</defaultOptions>
<wsdlOption>
<extraargs>
<extraarg>-fe</extraarg>
<extraarg>jaxws21</extraarg>
</extraargs>
</wsdlOption>
<wsdlRoot>${basedir}/src/main/resources/META-INF/cxf/wsdl</wsdlRoot>
<includes>
<include>*.wsdl</include>
</includes>
</configuration>如何在所有wsdl中都设置wsdlLocation,而不是逐个设置?
发布于 2017-12-01 17:27:46
这样啊,原来是这么回事。
您必须在配置中添加wsdlRoot部分。此外,您必须添加一个带有通配符的include部分。
这是我的插件部分
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<wsdlRoot>${basedir}/src/main/resources/wsdl/</wsdlRoot>
<includes>
<include>**/*.wsdl</include>
</includes>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>https://stackoverflow.com/questions/47133964
复制相似问题