3.9. JAX-WS ロギング
JAX-WS ハンドラー または Apache CXF ロギングインターセプター を使用して、インバウンドおよびアウトバウンドメッセージのロギングを処理できます。
3.9.1. JAX-WS ハンドラーの使用
JAX-WS ハンドラーは、渡されるメッセージをログに記録するように設定できます。@HandlerChain
JAX-WS アノテーションを使用して、ハンドラーが希望のクライアントやエンドポイントに追加できるため、このアプローチは移植性があると言えます。
事前定義されたクライアントおよびエンドポイント設定メカニズムにより、ロギングハンドラーを任意のクライアントおよびエンドポイントの組み合わせに追加したり、一部のクライアントおよびエンドポイントのみに追加したりできます。ロギングハンドラーを一部のクライアントまたはエンドポイントのみに追加するには、@EndpointConfig
アノテーションと JBossWS API を使用します。
org.jboss.ws.api.annotation.EndpointConfig
アノテーションは、エンドポイント設定を JAX-WS エンドポイント実装に割り当てるために使用されます。webservices
サブシステムに定義された設定を割り当てる場合、設定名のみが指定されます。アプリケーションに定義されている設定を割り当てる場合は、デプロイメント記述子への相対パスと設定名を指定する必要があります。
3.9.2. Apache CXF ロギングインターセプターの使用
Apache CXF には、コンソール、クライアントのログファイル、またはサーバーのログファイルにメッセージをログに記録するために使用できるロギングインターセプターが同梱されています。これらのインターセプターは、以下を含む複数の方法でクライアント、エンドポイント、およびバスに追加できます。
システムプロパティー
org.apache.cxf.logging.enabled
システムプロパティーをtrue
に設定すると、ロギングインターセプターが、JVM で作成されるバスインスタンスに追加されます。システムプロパティーをpretty
に設定して、きれいな形式の XML 出力を出力することもできます。以下の管理 CLI コマンドを使用すると、このシステムプロパティーを設定できます。/system-property=org.apache.cxf.logging.enabled:add(value=true)
手動インターセプターの追加
ロギングインターセプターは、Apache CXF アノテーション
@org.apache.cxf.interceptor.InInterceptors
および@org.apache.cxf.interceptor.OutInterceptors
を使用してエンドポイントに選択的に追加できます。プログラムでロギングインターセプターの新しいインスンタスをクライアントまたはバスに追加することにより、クライアント側の同じ結果が得られます。