2012-05-11 42 views
1

我正在將我的webservice發佈API從AXIS2遷移到CXF。 CXF自動生成的WSDL與Axis2 WSDL不同。有以下差異。當客戶坐在其他地方時,我無法測試這些差異是否會影響Axis2生成的客戶端。如何使用CXF刪除這些WSDL差異?
CXF WSDL在從Axis2遷移到CXF時刪除WSDL差異

<xs:element name="test" type="tns:test"/> 
<xs:element name="testResponse" type="tns:testResponse"/> 
    <xs:complexType name="test"> 
     <xs:sequence> <xs:element name="doc" type="xs:string" minOccurs="0"/> </xs:sequence> 
    </xs:complexType> 
    <xs:complexType name="testResponse"> 
     <xs:sequence> <xs:element name="return" type="xs:string" minOccurs="0"/> </xs:sequence> 
</xs:complexType> 

<wsdl:portType name="TESTService"> 

Axis2的WSDL

<xsd:element name="test" nillable="true" type="xsd:string" /> 
<xsd:element name="testResponse" nillable="true" type="xsd:string" /> 
<wsdl:portType name="TEST"> 

回答

0

要獲得rif xs:elemntName區別,請從Web服務輸入中刪除'@WebParams',因爲它僅接受字符串,不接受任何複雜的對象。

要刪除wsdl:portType名稱的區別,只需添加'@WebService(name)屬性。 '@WebService'應該按照規範順序,否則cxf將不會在WSDL中考慮它們。

1

最有可能的,添加的註釋:

@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)

會做到這一點。您可能還需要更新@WebParam和@WebReturn參數的「名稱」屬性。

+0

對不起,我沒有完全得到你。哪個註釋可以解決什麼問題?你可以請更具體嗎? –

+0

您是指「WebResult」而不是「WebReturn」? –