1

Web サービス パブリッシング API を AXIS2 から CXF に移行しています。CXF で自動生成された WSDL は、Axis2 WSDL とは異なります。以下に相違点を示します。クライアントが別の場所にあるため、これらの違いが Axis2 で生成されたクライアントに影響するかどうかをテストできません。CXF を使用して、これらの WSDL の違いをどのように取り除くことができますか?
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">
4

2 に答える 2

1

ほとんどの場合、次の注釈を追加します。

@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)

それをするでしょう。@WebParam および @WebReturn パラメータの「name」属性を更新する必要がある場合もあります。

于 2012-05-11T14:57:48.637 に答える
0

xs:elemntNameの違いの rifを取得するには、Web サービス入力から '@WebParams' を削除します。これは、複雑なオブジェクトではなく文字列のみを受け入れるためです。

wsdl:portTypeの名前の違いを取り除くために、「@WebService(name)」属性を追加しました。「@WebService」は仕様の順序に従っている必要があります。そうでない場合、cxf は WSDL でそれらを考慮しません。

于 2012-05-11T16:16:23.743 に答える