简体   繁体   中英

Apache CXF Logging

I have some problems with my server-client communication via web services with Apache CXF framework . I want to log the server errors to an external file instead of terminal. Piece of code for server;

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

And I tried this for logging;

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

But it gives the error The method getInInterceptors() is undefined for the type JaxwsNotificationBroker .

Is there any method to log the errors for JaxwsNotificationBroker ?

Thank you

You can add loggingInInterceptor & logOutInterceptor inside cxf:bus

<cxf:bus>
    <cxf:ininterceptors>
      <ref bean="loggingInInterceptor" />
    </cxf:ininterceptors>
    <cxf:outinterceptors>
      <ref bean="logOutInterceptor" />
    </cxf:outinterceptors>
  </cxf:bus>

add this to your spring config file, if you are using spring:

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

don't forget to add cxf namespace as

xmlns:cxf="http://cxf.apache.org/core"

如果使用log4j进行日志记录,则必须将META-INF / cxf / org.apache.cxf.Logger文件放入类路径中,并将“org.apache.cxf.common.logging.Log4jLogger”类名作为单行添加否则cxf将使用JavaTM 2平台的核心日志记录工具。

For some reason, gnodet wanted to keep all the WS-N stuff as independent from CXF as possible and only rely on pure JAX-WS stuff. Thus, nice methods for things like the CXF interceptors aren't possible. :-(

Looking at the code, the only option right now would be to write a subclass of JaxwsEndpointManager that would call the super.register method, then cast it to the CXF EndpointImpl, and set the interceptors on there. Not really ideal. :-(

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM