0

を使用した Web サービスを介したサーバーとクライアントの通信に問題がありますApache CXF framework。サーバーエラーを端末ではなく外部ファイルに記録したい。サーバーのコードの一部。

server= new JaxwsNotificationBroker("Hello",..);
server.setAddress("http://localhost:" + brokerPort + "/wsn/NotificationBroker");

そして、ロギングのためにこれを試しました。

server.getInInterceptors().add(new LoggingInInterceptor());
server.getOutInterceptors().add(new LoggingOutInterceptor());

しかし、エラーが発生しますThe method getInInterceptors() is undefined for the type JaxwsNotificationBroker

のエラーをログに記録する方法はありますJaxwsNotificationBrokerか?

ありがとうございました

4

4 に答える 4

2

内部にloggingInInterceptor&を追加できますlogOutInterceptorcxf:bus

<cxf:bus>
    <cxf:ininterceptors>
      <ref bean="loggingInInterceptor" />
    </cxf:ininterceptors>
    <cxf:outinterceptors>
      <ref bean="logOutInterceptor" />
    </cxf:outinterceptors>
  </cxf:bus>
于 2012-09-21T04:06:04.283 に答える
0

spring を使用している場合は、これを spring 構成ファイルに追加します。

    <cxf:bus>
    <cxf:features>
        <cxf:logging />
    </cxf:features>
</cxf:bus>

cxf名前空間を次のように追加することを忘れないでください

xmlns:cxf="http://cxf.apache.org/core"
于 2012-07-11T11:53:13.763 に答える
0

ロギングに log4j を使用する場合は、「org.apache.cxf.common.logging.Log4jLogger」クラス名を 1 行として、META-INF/cxf/org.apache.cxf.Logger ファイルをクラスパスに配置する必要があります。それ以外の場合、cxf は JavaTM 2 プラットフォームのコア ロギング機能を使用します。

于 2012-07-11T13:43:38.173 に答える
0

なんらかの理由で、gnodet はすべての WS-N を CXF から可能な限り独立させ、純粋な JAX-WS のみに依存したいと考えていました。したがって、CXF インターセプターのような優れた方法は使用できません。:-(

コードを見ると、現時点で唯一のオプションは、super.register メソッドを呼び出す JaxwsEndpointManager のサブクラスを作成し、それを CXF EndpointImpl にキャストして、そこにインターセプターを設定することです。本当に理想的ではありません。:-(

于 2012-07-16T21:13:56.903 に答える