0

提供された WSDL に基づいて、JAX-WS wsimport で生成した Java クライアントを使用して、サードパーティの Web サービスにアクセスしたいと考えています (Maven プラグインを使用しています)。

かなり長い間、リクエストで WS-A を有効にする必要があることがわかるまで、Java クライアントでも SoapUI でも有用な応答を取得できませんでした。SoapUI では期待どおりの応答が得られますが、Java クライアントで WS-A を「有効」にするにはどうすればよいですか? WSDL を変更したり、wsimport にパラメーターを追加したりする必要がありますか?

オンラインで WS-A に関するドキュメントをいくつか見つけましたが、これまでのところ答えが見つかりませんでした。

前もって感謝します。

4

1 に答える 1

1

あなたが言及したように WSDL を変更して、アドレス指定が必要であることを示すことができます (ただし、エンドポイントで本当に必要な場合は、サードパーティに依頼します..)。この仕様については、例 3-1 および 3-2 を参照してください。クライアントを再生成する必要がある場合があります (wsimport)。これについてはわかりません。

これをプログラムで実現したい場合は、次のようにポートを取得して a を渡すことができjavax.xml.ws.soap.AddressingFeatureます。

import javax.xml.ws.soap.AddressingFeature;
...
//however you are obtaining your service - 
//perhaps @WebServiceRef or instantiation with WSDL location, etc
HelloWorldService service = ... 
...
//true,true means enable Addressing, and indicate it is required
HelloWorld port = service.getHelloWorldPort(new AddressingFeature(true, true));
... call operations/methods on HelloWorld port

AddressingFeatureのjavadocからも、より多くの洞察が得られる場合があります。

于 2015-02-22T18:53:45.877 に答える