相关疑难解决方法(0)

如何使用Log4j记录Apache CXF Soap请求和Soap响应?

我正在使用Apache CXF框架.在我的客户端程序中,我需要记录CXF SOAP请求和SOAP响应.我用的时候

JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setAddress(host);
factory.setServiceClass(MyService.class);
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingOutInterceptor());
Run Code Online (Sandbox Code Playgroud)

我在控制台中获得了这些SOAP请求和SOAP响应:

Nov 9, 2011 6:48:01 PM org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
INFO: Outbound Message
---------------------------
ID: 2
Encoding: UTF-8
Content-Type: text/xml
Headers: {}
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns4:MYResponse
--------------------------------------
Run Code Online (Sandbox Code Playgroud)

但我的实际要求是,我需要将它们放在日志文件中,而不是将它们打印到服务器控制台.

当我直接使用log4j时如图所示

log4j(factory.getInInterceptors().add(new LoggingInInterceptor()));
log4j(factory.getOutInterceptors().add(new LoggingOutInterceptor()));
Run Code Online (Sandbox Code Playgroud)

它只打印truetrue在日志文件中.

有人可以告诉我如何配置吗?

log4j cxf

40
推荐指数
5
解决办法
11万
查看次数

如何使用Apache CXF以简单的方式获取传入和传出的soap xml?

我一直在摆弄CXF上的服务器端拦截器.但似乎实现简单的传入和传出拦截器并不是一项简单的任务,这些拦截器为我提供了包含SOAP XML的纯字符串.

我需要在拦截器中使用纯XML,以便我可以将它们用于特定的日志记录任务.标准的LogIn和LogOut拦截器不能胜任任务.是否有人愿意分享一些关于如何实现一个简单的传入拦截器的例子,它能够获取传入的SOAP XML和一个传出的拦截器来再次获取SOAP XML?

logging soap cxf interceptor

15
推荐指数
3
解决办法
5万
查看次数

CXF传出Interceptor得到的SOAP响应体总是为null?

我写了一个拦截器进行测试.但是我在Interceptor中得到的Soap消息体总是为空.

我的Cxf是Apache-CXF-2.4.0

bean.xml是这样的:

<cxf:bus>
    <cxf:outInterceptors>
        <ref bean="myOutSoapInterceptor"/>
  </cxf:outInterceptors>
</cxf:bus>
Run Code Online (Sandbox Code Playgroud)

拦截器文件:

public class MySoapInterceptorImpl extends AbstractSoapInterceptor implements IMySoapInterceptor {

public MySoapInterceptorImpl()
{
    super(Phase.WRITE );
    addAfter(SoapOutInterceptor.class.getName());
}


public void handleMessage(SoapMessage msg) throws Fault {
    // TODO Auto-generated method stub
    String soapContent ;
    SOAPMessage sm = msg.getContent(SOAPMessage.class);

    /*sm is always null!*/
    }
 }
Run Code Online (Sandbox Code Playgroud)

soap cxf response interceptor

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

cxf ×3

interceptor ×2

soap ×2

log4j ×1

logging ×1

response ×1