2014-01-14 40 views
1

返回類型這裏是的wsimport生成服務存根方法的一個例子:在的wsimport生成的服務存根方法

@WebMethod(operationName = "GetSynonym", action = "GetSynonymRequest") 
    @WebResult(name = "Synonyms", targetNamespace = "service.bnsf.com/contact/ContactMessages") 
    @RequestWrapper(localName = "GetSynonym", targetNamespace = "service.bnsf.com/contact/ContactMessages", className = "com.bnsf.service.contact.contactmessages.GetSynonymRequest") 
    @ResponseWrapper(localName = "GetSynonymResponse", targetNamespace = "service.bnsf.com/contact/ContactMessages", className = "com.bnsf.service.contact.contactmessages.GetSynonymResponse") 
    public Synonyms getSynonym(
      @WebParam(name = "RequestContext", targetNamespace = "service.bnsf.com/contact/ContactMessages") RequestContext requestContext, 
      @WebParam(name = "SynonymId", targetNamespace = "service.bnsf.com/contact/ContactMessages") EntityId synonymId) 
      throws BusinessFaultMessage, ServiceFaultMessage; 

注意,返回類型是別名類。

下面是相關WSDL部分:

<xs:element name="GetSynonymResponse" type="GetSynonymResponse"/> 
<xs:complexType name="GetSynonymResponse"> 
    <xs:sequence> 
     <xs:element maxOccurs="1" minOccurs="1" name="Synonyms" type="account:Synonyms"/> 
    </xs:sequence> 
</xs:complexType> 
... 
<wsdl:message name="GetSynonymResponse"> 
    <wsdl:part element="msg:GetSynonymResponse" name="GetSynonymResponse"/> 
</wsdl:message> 
... 
<wsdl:operation name="GetSynonym"> 
    <soap:operation soapAction="GetSynonymRequest" style="document"/> 
    <wsdl:input name="GetSynonymRequestRequest"> 
     <soap:body use="literal"/> 
    </wsdl:input> 
    <wsdl:output name="GetSynonymRequestResponse"> 
     <soap:body use="literal"/> 
    </wsdl:output> 
    <wsdl:fault name="BusinessFault"> 
     <soap:fault name="BusinessFault" use="literal"/> 
    </wsdl:fault> 
    <wsdl:fault name="ServiceFault"> 
     <soap:fault name="ServiceFault" use="literal"/> 
    </wsdl:fault> 
</wsdl:operation> 

默認的wsimport產生了與同義詞一流的服務方法,返回類型,而不是GetSynonymResponse類。

我的問題是這是否可定製 - 是否有可能使wsimport生成具有不同簽名的服務方法,特別是將GetSynonymResponse類作爲返回類型?

由於提前,

瓦列裏

回答

2

發現這是如何配置的:

稱爲「WrapperStyle」的功能應該被禁用,以使生成的方法返回xxxResponse類型。 這是通過提供-b參數accomplishable與binding.xml內容的wsimport像

的wsimport」 -b binding.xml ContactService.wsdl

作爲

<jaxws:bindings wsdlLocation="ContactService.wsdl" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
           xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" 
           xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"> 
        <!-- Turn off wrapper style Java method signature generation --> 
        <jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle> 
</jaxws:bindings> 
相關問題