0

wsimportを使用してクライアント Web サービス コードを生成しています。(以下の wsdl コードの一部を参照)。

コード生成が完了すると、メソッドが定義されていない空の TokenRequest クラスが取得されます。一方、TokenResponse クラスにはいくつかのメソッドが定義されており、いくつかのセッターといくつかのゲッターがあります。

以下の WSDL の場合、TokenRequest クラスが空なのはなぜですか?

ClientKey、Password、UserKey、UserName の 4 つのセッター メソッドがあると予想していました。現在、これらのパラメーターを設定して、この TokenRequest オブジェクトを受け取るメインの Login メソッドに渡すことができません。

.NET 4.0 でこの Web サービスへの参照を作成しようとしましたが、すべて問題なく動作しました。TokenRequest クラスには、必要な 4 つのパラメーターを受け取るコンストラクターがありました。

何が間違っているのですか?明日は Axis2 を使ってこれをやってみます...

   <?xml version="1.0" encoding="utf-8"?>
    ...
                <wsdl:input name="TokenRequest">
                    **<soap12:header message="i0:TokenRequest_Headers" part="ClientKey" use="literal"/>
                    <soap12:header message="i0:TokenRequest_Headers" part="Password" use="literal"/>
                    <soap12:header message="i0:TokenRequest_Headers" part="UserKey" use="literal"/>
                    <soap12:header message="i0:TokenRequest_Headers" part="UserName" use="literal"/>
                    <soap12:body use="literal"/>**
                </wsdl:input>
                <wsdl:output name="TokenResponse">
                    <soap12:body use="literal"/>
                </wsdl:output>
     ...
4

1 に答える 1

1

リンクのこのセクション「4.1.4. 追加の WSDL ヘッダーをメソッド パラメーターにマッピングする」では、wsimport が必要な SOAP ヘッダー プロパティを生成しない理由を説明します。4.1.4 セクションには、「JAX-WS RI 2.1.3 以降、wsimport に新しいオプション -XadditionalHeaders が追加されました。このオプションは、追加ヘッダーをメソッド パラメータとしてマップします。」というメモがあります。. そのため、ライブラリ (Metro、Axis、CXF など) のドキュメントを見て、そのような機能があるかどうかを確認する必要があります。

于 2013-10-16T23:59:42.343 に答える