問題タブ [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.

0 投票する
3 に答える
57102 参照

java - カスタム SOAPHandler を使用して SOAP メッセージ エンベロープを適切にフォーマットする方法

SOAPHandler インターフェイスを実装するクラスがあります。handleMessage は次のように定義されます。

これにより、次のメッセージが生成されます。

問題は、次の形式でメッセージを生成する必要があることです。

「mustUnderstand」属性には soapenv プレフィックスがなく、他のタグを子として持つ代わりに sse:Security タグがすぐに閉じられ、UserName が次のように適切にフォーマットされていません。

. SOAPElementメソッドを使用してメッセージを適切にフォーマットするにはどうすればよいですか? 私が知る必要がある最大のことは、セキュリティ タグ内のタグを正しく次のようにする方法と、ユーザー名/パスワード タグを適切にフォーマットする方法です。

addHeaderElement メソッドと addChildElement メソッドのさまざまな組み合わせを試しましたが、適切にフォーマットできず、javadocs には、生成されるものについて十分な詳細が示されていません。

0 投票する
2 に答える
1530 参照

java - カスタムSOAPHandlerを使用して要素を追加する方法

これは前の質問に関連しています。コードの多くを更新したので、主な問題を引き出しましたが、まだ問題があります。カスタムSOAPHandlerクラスでSOAPメッセージに新しい要素を追加するにはどうすればよいですか?メッセージにユーザー名とパスワードを追加する必要があります。私が使用する場合:

タグが閉じられ、値が囲まれていない場合、これで終わります。

最終的に次のような形式のユーザー名とパスワードを使用したいと思います。

要素に含まれる値(user1と1234)を取得するにはどうすればよいですか?

0 投票する
2 に答える
2147 参照

soap - javax.xml.rpc.handler.Handler.handleFault(MessageContext ctx) で応答 SOAP メッセージを変更する方法

ヘッダー データを検査する SOAP Web サービスのハンドラー (javax.xml.rpc.handler.Handler) を作成しました。メソッドhandleFaultが呼び出されたときの応答メッセージを変更するにはどうすればよいですか?

ありがとう。

0 投票する
1 に答える
5718 参照

java - WS 操作の実行後に SoapHandler が呼び出されない

SOAP WS も (doGet で) 使用するサーブレットがあります。SOAP エンベロープ (または SOAP メッセージ内のその他のもの) を見たいと思っています。このコードをサーブレット クラスに追加しました。

私は別のクラスで、TestHandler があります。

}

}

}

}

WSリクエストをしても何も出力されません。ハンドラーが呼び出されたかどうかさえわかりません。

Handler で定義されたプリントアウトを表示するには?

0 投票する
1 に答える
459 参照

web-services - JAX-WS クライアントを使用して、応答から SOAP ヘッダーを取得するにはどうすればよいですか?

JAX-WS クライアントを使用して、応答から SOAP ヘッダーを取得するにはどうすればよいですか?

handleMessageの方法を使用してそれを行うことができると思いますがSOAPHandler、もっと明白で簡単な方法が欠けているように感じます。

0 投票する
1 に答える
2859 参照

servlets - soapMessageContextで「HttpServletRequest」を取得する-軸ハンドラー

AxisHandlerの「handleMessage」メソッドで「HttpServletRequest」を取得しようとしています。私のAxisHandlerは、以下のコードに示すように「SOAPHandler」を実装しています。

「InBoundDirection」で「HttpServletRequest」を取得する必要がありますが、「null」が返されます。

SOAPHandlerの「InBoundDirection」で「HttpServletRequest」を取得するにはどうすればよいですか?

ありがとうございました..

0 投票する
1 に答える
961 参照

web-services - SOAPFaultハンドラー(handleFaultメソッド内)の障害詳細要素を変更できません

WebsphereV8でJAX-WSWebサービスを使用しています。WSがSOAP障害を返すとき、detail要素でいくつかの更新を実行したいと思います。そこで、SOAPハンドラーを作成しました。

障害メッセージを更新できますが、クライアントは元の障害を取得します(変更前)。しかし、更新された障害を(soapハンドラーで)印刷すると、変更を確認できます(たとえば、msg.writeTo(System.out)を呼び出します)。

更新された障害がwsクライアントに返されない理由はありますか?

ありがとうございました

0 投票する
1 に答える
1040 参照

jax-ws - SOAP メッセージを含む Axis 2 の SOAP ハンドラを追加する

要件

  1. wsdl を持つ Web サービスを呼び出す必要があり、ブラウザーからは開かない。
    ダミーのエンドポイントが指定された wsdl ドキュメントがあります。
    スタブ クラスなどが生成されたら、実行時にエンド ポイントを変更する必要があります。

  2. SOAP メッセージにヘッダーを追加するサードパーティ メソッドを呼び出す必要があります。このメソッドは SOAP メッセージのみを受け入れます。このメソッドは、フローに追加する必要がある SoapHandler から呼び出す必要があります。

私は次のすべてを試しました

Axis 2
このサービスは Axis2 でうまく動作しますが、ハンドラー内の AxisMesage にしかアクセスできず、SOAP メッセージにはアクセスできないため、サードパーティのメソッドを呼び出すことができず、失敗します。

Axis 1.4 サービスはうまく機能し、サードパーティ メソッドの呼び出しに使用できる SOAP メッセージにアクセスできます。

Apache CXF、JAX-WS など
wsdl が利用できないため、新しい wsdl エンドポイントでサービス クラスを初期化するか、bindingProvider を介してエンドポイントを設定すると、サービスを呼び出すことができない例外がスローされます。

質問
Axis 1.4 は古いので、近づかないという意見が一般的です。

Axis 2 は、AxisMessage の問題を除けば問題ありません。Axis に追加したハンドラーで SoapMessage にアクセスする方法はありますか。追加できるハンドラーは Axis2 ハンドラーのみです

CXF と JAX-WS では、 SoapMessage を持つジェネリック ハンドラーを追加できますが、サービス クラスが初期化されるか、BindingProvider で設定されると失敗します。

任意の提案
感謝
チャーリー

0 投票する
1 に答える
1417 参照

java - SOAPHandler の使用時に MTOM が機能しない

Mtom を使用してファイルを転送しようとしましたが、SoapHandler を使用してクライアントの署名を検証するまで、かなりうまく機能しています。SoapHandler はすべてのメッセージを保持し、base64 エンコードに変更します。そのため、巨大なファイルを取得しようとすると、Jvm がヒープ サイズの例外をスローします。この問題を解決する方法を知っていますか?

0 投票する
4 に答える
6162 参照

java - SOAP ハンドラーから Web サービス クライアントにデータを戻すにはどうすればよいですか?

(この質問のフォローアップ: Geting raw XML response from Java web service client )

Web サービス応答の生の XML を取得できる SOAP メッセージ ハンドラーがあります。この XML を Web サービス クライアントに取り込む必要があるため、応答を途中で送信する前に応答に対して XSL 変換を実行できます。着信メッセージをキャッチし、生の XML を (WSDL から) 生成された Web サービス クライアントで使用できるようにする SOAP ハンドラーからデータを取得する良い方法を見つけるのに苦労しています。これが実現可能かどうかのアイデアはありますか?


私はこのようなものを思いついた:

非常に単純なテストでは、これは機能しているようです。しかし、このソリューションは安っぽいハックのように感じます。生の XML をチェーン ハンドラーのメンバーとして設定するのは好きではありません。これは他の多くのベスト プラクティスに違反していると感じています。誰かがこれを行うためのよりエレガントな方法を持っていますか?