Java apachecxf为不同的包提供不同的服务
我有这样的Apache Cxf maven插件配置:Java apachecxf为不同的包提供不同的服务,java,maven,cxf,Java,Maven,Cxf,我有这样的Apache Cxf maven插件配置: <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <executions> <execution> <id>generate-sources</id>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<defaultOptions>
<bindingFiles>
<bindingfile>${basedir}/src/main/resources/jaxb-binding.general.xml</bindingfile>
</bindingFiles>
</defaultOptions>
<sourceRoot>
src/main/java/my/generated/services
</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${server1}/Service1.svc?wsdl</wsdl>
</wsdlOption>
<wsdlOption>
<wsdl>${server2}/Service2?wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
org.apache.cxf
cxf-codegen插件
生成源
生成源
${basedir}/src/main/resources/jaxb-binding.general.xml
src/main/java/my/generated/services
${server1}/Service1.svc?wsdl
${server2}/Service2?wsdl
wsdl2java
我基本上有两个问题,也许有人可以回答:
1) 如何将这两个服务端点提取到不同的目录?现在这两个都是“src/main/java/my/generated/services”。我想要:src/main/java/my/generated/services/service1和src/main/java/my/generated/services/service2
2) 如何设置生成的java文件包将是service1的my.generated.services.service1+(生成的文件包名称)和service2的my.generated.services.service2+(生成的文件包名称)
我尝试使用绑定文件来配置它,但只找到了特定名称空间的解决方案。。但还没有找到更通用的
谢谢你的帮助 我找到的将文件生成到不同目录的最简单方法是使用两种不同的WSDL2Java插件执行,如下所示
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<executions>
<execution>
<id>generate-sources-service1</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${basedir}/src/main/java/my/generated/services</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${server1}/Service1.svc?wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
<execution>
<id>generate-sources-services2</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${basedir}/src/main/java/my/generated/services</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${server2}/Service2?wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
org.apache.cxf
cxf-codegen插件
生成-sources-service1
生成源
${basedir}/src/main/java/my/generated/services
${server1}/Service1.svc?wsdl
wsdl2java
生成-sources-services2
生成源
${basedir}/src/main/java/my/generated/services
${server2}/Service2?wsdl
wsdl2java
您可以更改wsdl?非常感谢!您知道如何设置包名吗?您可以使用wsdl2java的extraargs和-p选项,请参阅和