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

时间:2014-09-24 08:48:38

标签: java web-services soap jaxb cxf

我正在使用soap(wsdl2java)自动生成CXF个网络服务类。

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

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

生成的Web服务将具有各种方法,如:

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

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

如何在同一interface下对所有请求进行分组?

例如AvailabilityReq implements BaseReqBookingReq implements BaseReq?或者也可以是extends

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

我可能要告诉jaxb / cxf这是关于自动生成的,但是如何?

1 个答案:

答案 0 :(得分:0)

解决方案是在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>