Webservice契约首先逆转 - 在WSDL中引用Java类

时间:2016-09-14 14:46:41

标签: java web-services wsdl jax-ws

我们有一堆首先设计合约的网络服务。在各种WSDL文件中包含来自相同XML模式定义的公共XML片段。但是,结果是为各种Web服务(wsimport)创建了几次类Address这样的类。

是否可以首先使用合同,但首先要定义一堆或几个在各种WSDL文件中引用的Java类? 这将使前端和后端的编程更容易。

1 个答案:

答案 0 :(得分:0)

我建议切换到cxf-codegen-plugin。它允许更多自定义代码生成过程。

使用cxf-codegen-plugin,您可以将类型名称空间映射到具体包。只需为共享类指定通用包:

<wsdlOption>
    <wsdl>${basedir}/src/main/resources/service1/Service1.wsdl</wsdl>
    <extraargs>
        <extraarg>-p</extraarg>
        <extraarg>http://yournamespace.com/types=com.namespace.types</extraarg>
        <extraarg>-p</extraarg>
        <extraarg>http://yournamespace.com/service1=com.namespace.service1</extraarg>
    </extraargs>
</wsdlOption>
<wsdlOption>
    <wsdl>${basedir}/src/main/resources/service2/Service2.wsdl</wsdl>
    <extraargs>
        <extraarg>-p</extraarg>
        <extraarg>http://yournamespace.com/types=com.namespace.types</extraarg>
        <extraarg>-p</extraarg>
        <extraarg>http://yournamespace.com/service2=com.namespace.service2</extraarg>
    </extraargs>
</wsdlOption>