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 を使用してエンドポイントに選択的に追加できます。プログラムでロギングインターセプターの新しいインスンタスをクライアントまたはバスに追加することにより、クライアント側の同じ結果が得られます。