以下是我的场景:我使用cxf-codegen-plugin为SOAP服务客户机生成源代码。生成和服务代理都工作得很好,但是我希望我生成的服务类(当前正在扩展javax.xml.ws.Service )也能实现一个具体定义的接口。
我已经翻阅了JAXB和JAXWS文档,但还没有找到我想要的东西。我发现的大多数示例都谈到了将绑定应用于复杂类型。
发布于 2017-11-14 06:57:02
要克服不受支持的绑定接口问题,您需要确保在配置中包含对jaxb-basics的依赖(根据词典的答案)。
此外,您还应该包括-Xinheritance标志。
</bindingFiles>
<extraargs>
<extraarg>-xjc-Xinheritance</extraarg>
</extraargs>
</wsdlOption>发布于 2015-04-09 05:32:55
您可以使用我的inheritance plugin扩展类或实现接口。另请参见Using JAXB2 Basics Plugins with CXF。
pom.xml片段
<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-XhashCode</extraarg>
<extraarg>-xjc-Xequals</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version><!-- version --></version>
</dependency>
</dependencies>
</plugin>绑定:
<jaxb:bindings version="1.0"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
jaxb:extensionBindingPrefixes="inheritance">
<jaxb:bindings schemaLocation="customer.xsd" node="/xsd:schema">
<jaxb:bindings node="xsd:complexType[@name='customer']">
<inheritance:implements>com.acme.foo.Actor</inheritance:implements>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>我不太确定它是否都是真实的,我已经尝试了很长一段时间,似乎我手头还没有测试项目。
https://stackoverflow.com/questions/29523984
复制相似问题