2014-09-24 16 views
1

我自动生成soap使用CXF(wsdl2java)的webservice类。如何给自动生成的SOAP Web服务请求相同的接口?

肥皂方法产生来自如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这个自动生成,但是怎么做?

+0

我很好奇,因为我总是做的其他方式 - 的Java2WSDL – Antoniossss 2014-09-24 09:01:15

+1

也许这个插件将帮助? http://confluence.highsource.org/display/J2B/AutoInheritance+Plugin – lexicore 2014-09-24 09:11:58

回答

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>