ハンドラーを使用すると、メッセージがネットワークを介して送信される前後に
SOAP メッセージを処理することができます。
このハンドラーは、通常は SOAP ヘッダーのコンテンツを処理する場合に使用されます。
ヘッダーの仕様は JAX RPC および JSR 109 によって定義されます。
Web サービスおよび Web サービス・クライアント用のハンドラーを構成することができます。
デプロイされた Web サービスについては、
webservice.xml デプロイメント記述子ファイルにハンドラーを追加することができます。
J2EE 1.3 Web サービス・クライアントについては、
webservicesclient.xml にハンドラーが追加されます。
J2EE 1.4 Web サービス・クライアントについては、
サーブレットおよび JSP の場合は WEB-INF/web.xml、
EJB の場合は META-INF/ejb-jar.xml、
アプリケーション・クライアントの場合は META-INF/application-client.xml
というそれぞれのクライアント・デプロイメント記述子に、ハンドラーを追加することができます。
ハンドラー・ウィザードは、
WebSphere® ランタイム環境のみを使用して、
Web サービスに適用することができます。
Web サービスまたはクライアントを作成して、以下の手順でハンドラーを構成します。
- 適切な Web サービス・デプロイメント記述子ファイルを右クリックし、
の順に選択する。
- 新規ハンドラーを追加するには、
「ハンドラー構成」の下の「追加」をクリックする。
- クラス名を入力するか、選択可能なクラスをブラウズする。
名前は自動的に入力されます。 まだ存在していないクラスの名前を入力した場合、
「新規ハンドラーのスケルトン・クラスを生成」を選択してあれば、ウィザードはそのクラスを作成します。
- ハンドラーに適用できる選択可能なポートが複数ある場合は、正しいポートを選択する。
- 「OK」をクリックする。
- 必要なすべてのハンドラーをリストに追加したら、ウィザードにリストされている順序を変更することにより、
それらの処理順序を変更することができます。
「完了」をクリックする。
ウィザードがスケルトン・ハンドラーを作成すると、
ハンドラーの実装が Java™ エディターに自動的に開きます。
ウィザードを使用して複数のハンドラーを作成した場合には、
最初のハンドラーのみが
Java エディターに開きます。
新規ハンドラーを追加すると、
その構成をデプロイメント記述子エディターまたは Web サービス・エディターで編集することができます。
これを編集するには、Web サービスまたはクライアント・デプロイメント記述子をダブルクリックしてから、
「WS ハンドラー」または「ハンドラー」タブを選択します。
Java
エディターを使用してハンドラーの実装そのものを編集することもできます。
制限:- 現在の問題は、「ハンドラー構成」ウィザードでハンドラーを追加した後で、
ハンドラー Java
ファイルがまったく同一のロケーションに既に存在していて、かつ「ロード可能な
Java
クラスを上書きしない」を選択しなかった場合を除いて、
ウィザードが新しいスケルトン・ハンドラー
Java
ファイルをプロジェクトのプライマリー・ソース・フォルダーに生成することです。
このウィザードは EAR のどこか他の場所に同じ完全修飾名をもつハンドラーが存在するかどうかの検査は行いません。
その結果、プロジェクトの異なるソース・フォルダーや EAR の異なるモジュールの中など、
EAR のどこか他の場所に既に存在しているハンドラーをウィザードで追加すると、
このウィザードは新しいスケルトン・ハンドラーを書き込むことになり、元のハンドラー・クラスを隠してしまいます。
そのような場合には、ウィザードによって生成されたスケルトン・ハンドラーを削除してください。
- J2EE デプロイメント記述子エディターが未保管の変更がある状態で開かれ、
続いて、「ハンドラー構成」ウィザードを起動して同じ記述子に保管すると、
ウィザードは正しく終了しますが、このエディター・セッションでこの保留中の変更を保管することはできません。
もし、保管しようとすると、エディターは「ファイルは既に変更されています」というメッセージを出します。
「ハンドラー構成」ウィザードを使用して J2EE デプロイメント記述子ファイル
( webservices.xml、webservicesclient.xml、web-inf.xml, ejb-jar.xml、application-client.xml など)
に指定されたハンドラーで処理する前に、この記述子ファイルを開いているエディターを閉じてください。