org.apache.catalina.valves.ValveBase
クラスを拡張して、Apache Tomcat 用のカスタム Valve を作成しようとしています。方法がありpublic abstract void invoke(Request request,Response response)
ます。私のTomcatコンテナにはAxis2があり、Webサービスがホストされています。したがって、私の問題は、このカスタム バルブを使用してその Web サービスへの SOAP メッセージを抽出する方法を見つけることです。org.apache.catalina.connector.Request
では、引数とを使用して SOAP メッセージを取得する方法は何org.apache.connector.Response
ですか?
2 に答える
カスタムバルブはAxis2がリクエストを受信する前に実行されるため、Axis2によって解析されたSOAPメッセージにアクセスすることはできません。自分でメッセージを解析してから、元のメッセージのコピーをAxis2に渡すか(バルブがメッセージを変更しない場合)、メッセージを再シリアル化する(バルブがメッセージを変更する場合)だけです。
他のユーザーが言ったこととは対照的に、Axis2のドキュメントにはそれを行うのに役立つものは何もないことに注意してください。ただし、ユースケース(十分に詳細に説明していなかった)によっては、Axis2ハンドラーを使用して目標を達成できる場合があります。もちろん、Axis2ハンドラーはAxis2のドキュメントで説明されています。
これは、サーブレットまたはフィルターを作成する場合に SOAP メッセージを抽出するのと同じ方法でorg.apache.catalina.connector.Request
行います。HttpServletRequest
org.apache.connector.Response
HttpServletResponse
から SOAP メッセージを抽出する方法がわからない場合はHttpServletRequest
、Axis2 のドキュメントを読む必要があります。