java - 如何为自动生成的 SOAP Web 服务请求提供相同的接口(interface)?

标签 java web-services soap jaxb cxf

我正在使用 CXF (wsdl2java) 自动生成 soap Webservice 类。

生成的soap方法来自xml标签,例如:

<wsdl:message name="GetAvailabilityReq">
        <wsdl:part name="parameters" element="q1:GetAvailabilityReq"
            xmlns:q1="http://path.to./MyService" />
    </wsdl:message>

生成的网络服务将具有多种方法,例如:

@WebService
public interface MyWebservice {
   @WebResult
   @WebMethod
   public AvailabilityRsp getAvailability(@WebParam AvailabilityReq req);

   @WebResult
   @WebMethod
   public BookingRsp getBooking(@WebParam BookingReq req);
}

如何将所有请求分组到同一接口(interface)下?

例如AvailabilityReq实现BaseReq并且BookingReq实现BaseReq?或者它也可以是扩展

注意:所有请求都不通过提供的 wsdl 文件共享通用接口(interface),但我希望生成该接口(interface)。

我可能必须在自动生成时告诉 jaxb/cxf ,但是如何?

最佳答案

解决方案是在pom.xml中提供以下信息:

            <dependency>
                    <groupId>org.jvnet.jaxb2_commons</groupId>
                    <artifactId>jaxb2-basics</artifactId>
                    <version>0.8.2</version>
            </dependency>

        <extraargs>
            <extraarg>-xjc-XautoInheritance</extraarg>
            <extraarg>-xjc-XautoInheritance-xmlRootElementsImplement=package.to.MyCommonInterface</extraarg>
        </extraargs>

关于java - 如何为自动生成的 SOAP Web 服务请求提供相同的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26012467/

相关文章:

java - 制作一个 "macro"命令来运行一个程序

java - 无法使用 ksoap2 序列化日期

java - 如何将数据集值传递给 dotnet Web 服务?

java - 使用QuickBooks Web Connector的身份验证问题:对象引用未设置为对象的实例

java - 从 Quartz 作业查询数据库时出现空指针异常

java - 为什么 Properties.store 用\来分隔以 : 分隔的值

java - 有没有办法使用elasticsearch java api加载包含索引映射的json文件?

ios - 套接字服务器与 iOS 应用程序的 http 服务器

c# - 如何使用 WCF 服务引用使用 RPC 样式的 Web 服务?

testing - 当 XML 扩展到位时,如何在 soapUI 中从 XSD 添加 SOAP 模板?