1

私はApacheaxis2を使用しており、より具体的には、wsdl2javaツールを使用して、Webサービスのスタブを生成し、wsdlファイルを指定してクライアントを作成しています。

Paypal Webサービス(そのwsdlファイルはここにあります)のスタブクラスを生成しようとすると、axisはwsdlに含まれる両方のバインディングのスタブを生成せず、2番目のバインディング(PayPalAPIAASoapBinding)のみを生成します

誰かが以前にapacheのwsdl2javaツールでこのwsdlに取り組んだことがありますか?

4

2 に答える 2

2

私もこれに苦労しています。

簡単な答え: Axis2コマンドに
-pnPayPalAPIを追加します。

長い答え:
PayPalWSDLの次の行を見てください。

<wsdl:service name="PayPalAPIInterfaceService">
    <wsdl:port name="PayPalAPI" binding="ns:PayPalAPISoapBinding">
        <wsdlsoap:address location="https://api.sandbox.paypal.com/2.0/"/>
    </wsdl:port>
    <wsdl:port name="PayPalAPIAA" binding="ns:PayPalAPIAASoapBinding">
        <wsdlsoap:address location="https://api-aa.sandbox.paypal.com/2.0/"/>
    </wsdl:port>
</wsdl:service>

明らかに、WSDLは2つのポートを持つ1つのサービスを指定します。私たちの問題は、Axis2が2番目のポート「PayPalAPIAA」のスタブのみを作成し、ポート「PayPalAPI」のスタブを作成しないことです。

ここで、Axis 2コマンドラインオプションリファレンス(http://ws.apache.org/axis2/tools/1_2/CodegenToolReference.html#cmdref)、特にオプション-pnの説明を見てください。

「コードで生成するポート名を指定します。ポート名が指定されていない場合は、(選択したサービスの)最初のポートが選択されます。」

したがって、-pnPayPalAPIを指定するとうまくいきます。

于 2010-09-25T10:58:53.520 に答える
0

apon、
私はEclipseを使用して、新しいWebサービスクライアントプロジェクトを作成し、あなたが言及したURLをポイントしました。両方のスタブを作成できたと思います。EclipseIDEからスタブを一度作成してみてください。

于 2010-08-11T13:05:07.363 に答える