如何让WSDL生成的Java类实现接口
我们的主要wsdl有一系列wsdl导入。每个子wsdl导入common.xsd并为特定操作定义请求和应答对象 我希望每个子wsdl文档中的请求对象实现一个公共接口 首先,我尝试使用xsd:extension并将公共元素提取到基类中。这是可行的,但是改变了公开的wsdl,我不想这样做。现在已经稳定了一段时间了。此更改对web服务的消费者应该是完全透明的 我发现: 所以我应该可以使用 com.acme.foo.MyInterface 但这需要运行jaxb w/“-Xinheritance”,而我似乎不知道如何在我的maven构建中做到这一点。我正在使用org.apache.cxf:cxfcodegenplugin:wsdl2java从wsdl生成Java源代码 我是否需要将模式从wsdl提取到XSD,并直接使用JAXB生成Java源代码 还有其他选择吗 谢谢。请检查。您需要执行以下操作:如何让WSDL生成的Java类实现接口,java,wsdl,jaxb,cxf,xjc,Java,Wsdl,Jaxb,Cxf,Xjc,我们的主要wsdl有一系列wsdl导入。每个子wsdl导入common.xsd并为特定操作定义请求和应答对象 我希望每个子wsdl文档中的请求对象实现一个公共接口 首先,我尝试使用xsd:extension并将公共元素提取到基类中。这是可行的,但是改变了公开的wsdl,我不想这样做。现在已经稳定了一段时间了。此更改对web服务的消费者应该是完全透明的 我发现: 所以我应该可以使用 com.acme.foo.MyInterface 但这需要运行jaxb w/“-Xinheritance”,而我似
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/wsdl/CustomerService.wsdl</wsdl>
<bindingFiles>
<bindingFile>${basedir}/src/main/wsdl/binding.xml</bindingFile>
<bindingFile>${basedir}/src/main/wsdl/binding.xjb</bindingFile>
</bindingFiles>
<extraargs>
<extraarg>-xjc-Xinheritance</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version><!-- version --></version>
</dependency>
</dependencies>
</plugin>
org.apache.cxf
cxf-codegen插件
生成源
生成源
wsdl2java
${basedir}/src/main/wsdl/CustomerService.wsdl
${basedir}/src/main/wsdl/binding.xml
${basedir}/src/main/wsdl/binding.xjb
-xjc新遗传
org.jvnet.jaxb2_commons
jaxb2基础知识
检查。您需要执行以下操作:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/wsdl/CustomerService.wsdl</wsdl>
<bindingFiles>
<bindingFile>${basedir}/src/main/wsdl/binding.xml</bindingFile>
<bindingFile>${basedir}/src/main/wsdl/binding.xjb</bindingFile>
</bindingFiles>
<extraargs>
<extraarg>-xjc-Xinheritance</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version><!-- version --></version>
</dependency>
</dependencies>
</plugin>
org.apache.cxf
cxf-codegen插件
生成源
生成源
wsdl2java
${basedir}/src/main/wsdl/CustomerService.wsdl
${basedir}/src/main/wsdl/binding.xml
${basedir}/src/main/wsdl/binding.xjb
-xjc新遗传
org.jvnet.jaxb2_commons
jaxb2基础知识
我发现cxf codegen插件
对于从WSDL生成Web服务非常有用。。。但对于从模式生成POJO,我更喜欢使用cxf xjc插件
,它可以配置为使用继承插件
,就像这样:我发现cxf codegen插件
对于从WSDL生成Web服务非常有用。。。但对于从模式生成POJO,我更喜欢使用cxf xjc plugin
,可以将其配置为使用继承插件
,如下所示: