首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以通过cxf-codegen-plugin向生成的Service类添加接口

是否可以通过cxf-codegen-plugin向生成的Service类添加接口
EN

Stack Overflow用户
提问于 2015-04-09 03:44:10
回答 2查看 1.7K关注 0票数 2

以下是我的场景:我使用cxf-codegen-plugin为SOAP服务客户机生成源代码。生成和服务代理都工作得很好,但是我希望我生成的服务类(当前正在扩展javax.xml.ws.Service )也能实现一个具体定义的接口。

我已经翻阅了JAXB和JAXWS文档,但还没有找到我想要的东西。我发现的大多数示例都谈到了将绑定应用于复杂类型。

EN

回答 2

Stack Overflow用户

发布于 2017-11-14 06:57:02

要克服不受支持的绑定接口问题,您需要确保在配置中包含对jaxb-basics的依赖(根据词典的答案)。

此外,您还应该包括-Xinheritance标志。

代码语言:javascript
复制
     </bindingFiles>
     <extraargs>
         <extraarg>-xjc-Xinheritance</extraarg>
     </extraargs>
</wsdlOption>
票数 1
EN

Stack Overflow用户

发布于 2015-04-09 05:32:55

您可以使用我的inheritance plugin扩展类或实现接口。另请参见Using JAXB2 Basics Plugins with CXF

pom.xml片段

代码语言:javascript
复制
<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>

绑定:

代码语言:javascript
复制
<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>

我不太确定它是否都是真实的,我已经尝试了很长一段时间,似乎我手头还没有测试项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29523984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档