2

複数の応答がクライアント Web サービスに非同期的に返される Java SOAP クライアントを作成しています。応答は非同期であるため、クライアントはMessageIdを SOAPHeader に渡す必要があります。複数の応答は同じMessageIdを返し、クライアントが要求を多数の応答にマップできるようにします。

2 つのハンドラー (プロトコルと論理) があります。SOAPHandler がMessageIdを取得し、LogicalHander がペイロードまたは実際の応答を取得しています。この 2 つの情報を何らかの方法で結び付けたいと考えました。

私の問題は、1 つはMessageIdをプルし、もう 1 つはペイロードをプルする 2 つの異なるコードがありますが、2 つを確実に接続する方法がありません。

何かを見過ごしているかどうかはわかりません。ヘッダーとペイロードの両方をプロトコルまたは論理ハンドラーから取得できますか?

4

1 に答える 1

12

すべて SOAP ハンドラで実行できます。

「JAX-WS は、SOAP ハンドラーと論理ハンドラーの 2 種類の SOAP メッセージ ハンドラーをサポートしています。SOAP ハンドラーは、メッセージ ヘッダーと本文を含む SOAP メッセージ全体にアクセスできます。論理ハンドラーは、メッセージのペイロードのみにアクセスでき、プロトコルを変更することはできません。 -メッセージ内の特定の情報 (ヘッダーなど)。"

いくつかの説明と素敵な写真についてはこれを参照してください:)また、OracleドキュメントのSOAPメッセージハンドラの概要を読むことができます:

于 2012-08-22T09:55:45.327 に答える