36.9.1 Webサービス側のハンドラチェインの設定
Webサービス側でハンドラチェインを設定する場合,javax.jws.HandlerChainアノテーションでSEI,Webサービス実装クラス,またはプロバイダ実装クラスをアノテートし,javax.jws.HandlerChainアノテーションのfile要素でハンドラチェイン設定ファイルを指定します。
javax.jws.HandlerChainアノテーションでWebサービス実装クラスをアノテートした例を示します。
package com.sample; @javax.jws.WebService @javax.jws.HandlerChain(file="handlers.xml") public class AddNumbersImpl{ public int add( int number1, int number2 ) throws AddNumbersFault{ ... } }
この例では,Webサービス実装クラスcom.sample.AddNumbersImplにハンドラチェイン設定ファイルhandlers.xmlで定義されたハンドラチェインを関連づけています。
ハンドラチェイン設定ファイルは,Webサービスごとに必要になります。複数のWebサービスで共有してもかまいませんが,その場合は,同じ設定が適用されます。
javax.jws.HandlerChainアノテーションについては,「16.2.3 javax.jws.HandlerChainアノテーション」を参照してください。
(1) ハンドラチェイン設定ファイル
ハンドラチェイン設定ファイルは,ハンドラを使用してWebサービスに処理を追加した場合に,ハンドラチェインの構成を定義するファイルです。javax.jws.HandlerChainアノテーションのfile要素で指定します。
ハンドラチェイン設定ファイルのサポート範囲については,「19.4 ハンドラチェイン設定ファイルのサポート範囲」を参照してください。ここでは,ハンドラチェイン設定ファイルの構文および配置について説明します。
(a) ハンドラチェイン設定ファイルの構文
ハンドラチェイン設定ファイルの構文は,Java EE 5仕様の標準スキーマ(Java EE Web Services Metadata Handler Chain Schema),およびApplication ServerのJAX-WS機能でサポートされる範囲で記述します。
標準のスキーマは,Java EE 5の名前空間URI(http://java.sun.com/xml/ns/javaee/)にアクセスすることで参照できます。ハンドラチェイン設定ファイルの記述例を次に示します。
<?xml version="1.0" encoding="UTF-8"?> <handler-chains xmlns="http://java.sun.com/xml/ns/javaee"> <handler-chain> <handler> <handler-class>org.test.handler.LoggingHandler</handler-class> </handler> </handler-chain> </handler-chains>