問題タブ [soaphandler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
soap - SOAPHandler の handleFault メソッドを取得してリクエストとレスポンスを区別する方法
サービス呼び出しをインターセプトするために使用しようとしていますが、メソッドとメソッド内SOAPHandler
を区別する必要があります。問題は、リクエストまたはレスポンスのいずれかが無効なときにメソッドが呼び出されたときに、それがどちらであるかを知る方法がないことです。これは役に立ちません。request
response
handleFault
handleFault
MessageContext.MESSAGE_OUTBOUND_PROPERTY
true
handleFault
web-services - SOAPHandler handleMessage がカスタム エラーを返す
カスタム SOAPHandler があり、handleMessage() は次のとおりです。
たとえば、誰かがセキュリティ ヘッダーを追加しない場合、次のような応答が返されます。
ここで、handleMessage(...) で、次のように不良ヘッダーのカスタム フォールトをラップしました。
私たちの組織によると。標準では、wsdl で宣言されている以下の障害があります (ここに部分的に示されています)。
応答にこの障害があることを確認するにはどうすればよいですか? SOAPFault.addDetail(...)を無駄に試しました。
web-services - Jax-WS Request-Response ペイロード ロギングのスレッド セーフ
私は SoapHandler の実装に取り組んでいます。基本的に私の目的は、リクエストとレスポンスの両方のペイロードを取得してデータベースに挿入することです。
リクエストとレスポンスのペイロードは取得できましたが、コードがスレッドセーフに機能しているかどうかは確認できませんでした。つまり、応答が適切な要求と一致するかどうかはわかりません。
JCP仕様でこれを見つけました:
9.3.3 ハンドラの実装に関する考慮事項
ハンドラ インスタンスは、JAX-RPC ランタイム システムによってプールされる場合があります。特定のハンドラーのすべてのインスタンスは、JAX-RPC ランタイム システムによって同等と見なされ、特定のメッセージを処理するために任意のインスタンスを選択できます。MEP の各メッセージを処理するために、異なるハンドラ インスタンスを使用できます。ハンドラー チェーン内の各ハンドラー、MEP 内の各メッセージ、またはこの 2 つの任意の組み合わせに対して、異なるスレッドを使用できます。ハンドラーは、スレッド ローカルの状態に依存して情報を共有するべきではありません。ハンドラーは代わりにメッセージ コンテキストを使用する必要があります。セクション 9.4 を参照してください。
9.4 メッセージコンテキスト
ハンドラーは、受信メッセージと送信メッセージにアクセスして変更し、一連のプロパティを管理するためのメソッドを提供するメッセージ コンテキストで呼び出されます。さまざまなタイプのハンドラーが、さまざまなタイプのメッセージ コンテキストで呼び出されます。セクション 9.4.1 と 9.4.2 では、MessageContext と LogicalMessageContext についてそれぞれ説明しています。さらに、JAX-RPCバインディング12は、プロトコル固有の機能へのアクセスを提供する特定のプロトコル・バインディングのためのメッセージ・コンテキスト・サブタイプを定義することができる。セクション10.3では、JAX-RPC SOAPバインディングのメッセージ・コンテキスト・サブタイプについて説明しています。
これは、リクエストごとに新しい MessageContext オブジェクトが作成されることを意味しますか (この場合、コードはスレッドセーフになると思います)、または同じ MessageContext オブジェクトを複数のリクエストに使用できます (私のコードはスレッドセーフではありません)。
ヘルプ/代替ソリューションをいただければ幸いです。
xml - jax-ws soaphandler は応答データ値を取得します
私は JAX-WS を初めて使用します。Soap Handler の応答データで値を取得したいのですが、方法がわかりません。
以下は、XML での SOAP 応答です。
<Signature>
insideの値を取得したいと思います<CS_LogonResponseData>
。以下を使用しましたが、スタンドアロンアプリケーションでのみ機能するようです。
コード:
プロジェクトで同じコードを使用すると、結果は常に null になります。
応答データからナビゲートして値を取得する方法はありますか<Signature>
...子ノード項目のインデックスは、スタンドアロンアプリケーションとして実行した場合とTomcat経由で実行した場合に変化しているようです。
他の操作 (ログアウトなど) のリクエスト データで署名値が必要になります。
前もって感謝します
xml - SOAP 応答用のカスタム SOAP エンベロープ
Spring+SOAP+JAXB+XSDを使って石鹸アプリを開発しています
SOAPヘッダーをカスタマイズしたい
私の既存の応答
私の期待される反応
xmlns:stu="http://studentinfo.com/"が私の SOAP エンベロープ ヘッダーにあることに注意してください。これを追加する方法を教えてください。SOAP UI を使用して SOAP をテストしていますが、アサーションを使用して要求ヘッダーと応答ヘッダーを検証できません。
お知らせ下さい
ありがとう
java - Java SOAP ハンドラーからの応答の取得
誰かが次の問題を解決する際の経験を共有してくれたら、非常に感謝します。私はJDK実装にSOAPサービスを持っています(これはMetroだと思います)。
ロギングの目的で、着信リクエストと生成されたレスポンスの両方の本文を抽出する必要があります。サーバー側で SOAPHandler を実装して取得しようとしています。ハンドラーを Spring Bean として構成します。私が見つけたすべての例は、基本的にOracleドキュメントの例を複製しています: https://docs.oracle.com/cd/E23943_01/web.1111/e13734/handlers.htm#WSADV170 :
ここでは、SOAP メッセージ コンテキストのブール プロパティの 1 つを読み取ります。これは、私が見ているように、要求または応答のいずれかに対応します。
しかし、私の実験では、デバッガーは応答に対応するブランチ (else-branch) には決して入りません。そのようなハンドラーは、リクエストとレスポンスの両方をどのようにトレースすることになっていますか?
私はまた、どのメッセージが messageContext.getMessage() として読み取られるのだろうか: 受信 (要求) または送信 (応答) ですか?
handleMessage() メソッドを実装することで、リクエストとレスポンスの両方にアクセスできるようになるのでしょうか? 単一のハンドラーがリクエストとそのレスポンスの両方をインターセプトしますか? 例を誤解しましたか?
そして... SOAPHandler - すべてのリクエスト (リクエストとレスポンスのペア) の特定のインスタンスですか? ありがとうございました