2014-09-24 14 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>