問題タブ [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.
java - カスタム SOAPHandler を使用して SOAP メッセージ エンベロープを適切にフォーマットする方法
SOAPHandler インターフェイスを実装するクラスがあります。handleMessage は次のように定義されます。
これにより、次のメッセージが生成されます。
問題は、次の形式でメッセージを生成する必要があることです。
「mustUnderstand」属性には soapenv プレフィックスがなく、他のタグを子として持つ代わりに sse:Security タグがすぐに閉じられ、UserName が次のように適切にフォーマットされていません。
. SOAPElementメソッドを使用してメッセージを適切にフォーマットするにはどうすればよいですか? 私が知る必要がある最大のことは、セキュリティ タグ内のタグを正しく次のようにする方法と、ユーザー名/パスワード タグを適切にフォーマットする方法です。
addHeaderElement メソッドと addChildElement メソッドのさまざまな組み合わせを試しましたが、適切にフォーマットできず、javadocs には、生成されるものについて十分な詳細が示されていません。
java - カスタムSOAPHandlerを使用して要素を追加する方法
これは前の質問に関連しています。コードの多くを更新したので、主な問題を引き出しましたが、まだ問題があります。カスタムSOAPHandlerクラスでSOAPメッセージに新しい要素を追加するにはどうすればよいですか?メッセージにユーザー名とパスワードを追加する必要があります。私が使用する場合:
タグが閉じられ、値が囲まれていない場合、これで終わります。
最終的に次のような形式のユーザー名とパスワードを使用したいと思います。
要素に含まれる値(user1と1234)を取得するにはどうすればよいですか?
soap - javax.xml.rpc.handler.Handler.handleFault(MessageContext ctx) で応答 SOAP メッセージを変更する方法
ヘッダー データを検査する SOAP Web サービスのハンドラー (javax.xml.rpc.handler.Handler) を作成しました。メソッドhandleFaultが呼び出されたときの応答メッセージを変更するにはどうすればよいですか?
ありがとう。
java - WS 操作の実行後に SoapHandler が呼び出されない
SOAP WS も (doGet で) 使用するサーブレットがあります。SOAP エンベロープ (または SOAP メッセージ内のその他のもの) を見たいと思っています。このコードをサーブレット クラスに追加しました。
私は別のクラスで、TestHandler があります。
}
}
}
}
WSリクエストをしても何も出力されません。ハンドラーが呼び出されたかどうかさえわかりません。
Handler で定義されたプリントアウトを表示するには?
web-services - JAX-WS クライアントを使用して、応答から SOAP ヘッダーを取得するにはどうすればよいですか?
JAX-WS クライアントを使用して、応答から SOAP ヘッダーを取得するにはどうすればよいですか?
handleMessage
の方法を使用してそれを行うことができると思いますがSOAPHandler
、もっと明白で簡単な方法が欠けているように感じます。
servlets - soapMessageContextで「HttpServletRequest」を取得する-軸ハンドラー
AxisHandlerの「handleMessage」メソッドで「HttpServletRequest」を取得しようとしています。私のAxisHandlerは、以下のコードに示すように「SOAPHandler」を実装しています。
「InBoundDirection」で「HttpServletRequest」を取得する必要がありますが、「null」が返されます。
SOAPHandlerの「InBoundDirection」で「HttpServletRequest」を取得するにはどうすればよいですか?
ありがとうございました..
web-services - SOAPFaultハンドラー(handleFaultメソッド内)の障害詳細要素を変更できません
WebsphereV8でJAX-WSWebサービスを使用しています。WSがSOAP障害を返すとき、detail要素でいくつかの更新を実行したいと思います。そこで、SOAPハンドラーを作成しました。
障害メッセージを更新できますが、クライアントは元の障害を取得します(変更前)。しかし、更新された障害を(soapハンドラーで)印刷すると、変更を確認できます(たとえば、msg.writeTo(System.out)を呼び出します)。
更新された障害がwsクライアントに返されない理由はありますか?
ありがとうございました
jax-ws - SOAP メッセージを含む Axis 2 の SOAP ハンドラを追加する
要件
wsdl を持つ Web サービスを呼び出す必要があり、ブラウザーからは開かない。
ダミーのエンドポイントが指定された wsdl ドキュメントがあります。
スタブ クラスなどが生成されたら、実行時にエンド ポイントを変更する必要があります。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 で設定されると失敗します。
任意の提案
感謝
チャーリー
java - SOAPHandler の使用時に MTOM が機能しない
Mtom を使用してファイルを転送しようとしましたが、SoapHandler を使用してクライアントの署名を検証するまで、かなりうまく機能しています。SoapHandler はすべてのメッセージを保持し、base64 エンコードに変更します。そのため、巨大なファイルを取得しようとすると、Jvm がヒープ サイズの例外をスローします。この問題を解決する方法を知っていますか?
java - SOAP ハンドラーから Web サービス クライアントにデータを戻すにはどうすればよいですか?
(この質問のフォローアップ: Geting raw XML response from Java web service client )
Web サービス応答の生の XML を取得できる SOAP メッセージ ハンドラーがあります。この XML を Web サービス クライアントに取り込む必要があるため、応答を途中で送信する前に応答に対して XSL 変換を実行できます。着信メッセージをキャッチし、生の XML を (WSDL から) 生成された Web サービス クライアントで使用できるようにする SOAP ハンドラーからデータを取得する良い方法を見つけるのに苦労しています。これが実現可能かどうかのアイデアはありますか?
私はこのようなものを思いついた:
非常に単純なテストでは、これは機能しているようです。しかし、このソリューションは安っぽいハックのように感じます。生の XML をチェーン ハンドラーのメンバーとして設定するのは好きではありません。これは他の多くのベスト プラクティスに違反していると感じています。誰かがこれを行うためのよりエレガントな方法を持っていますか?