我通过在standalone.xml中添加以下内容启用了SOAP日志记录,如Jboss高级用户指南中所述:
<system-properties>
<property name="org.apache.cxf.logging.enabled" value="true"/>
</system-properties>此配置并不能很好地打印XML消息。我确信CXF支持漂亮的打印,因为库中有一个AbstractLoggingInterceptor.setPrettyLogging()方法。
如何在JBoss 7中启用SOAP请求和响应的漂亮打印。
发布于 2015-01-29 15:33:56
尽管Serdal的回答是正确的,但在我看来,这并不实际。
我的解决方案
我删除了org.apache.cxf.logging.enabled系统属性,并使用以下代码启用SOAP日志记录:
Client client = ClientProxy.getClient(port);
LoggingInInterceptor inInterceptor = new LoggingInInterceptor();
inInterceptor.setPrettyLogging(true);
client.getInInterceptors().add(inInterceptor);
LoggingOutInterceptor outInterceptor = new LoggingOutInterceptor();
outInterceptor.setPrettyLogging(true);
client.getOutInterceptors().add(outInterceptor);发布于 2016-04-28 12:05:33
使用org.apache.cxf.logging.enabled属性是正确的方法,它接受格式良好的xml输出的值“漂亮”。
<system-properties>
<property name="org.apache.cxf.logging.enabled" value="pretty"/>
</system-properties>发布于 2015-01-28 10:00:36
通过执行以下操作,我能够很好地打印和增加来自Webservice的XML响应的限制大小:
wsdlLocationURL = new URL(productServiceURLStr);
ServiceFacadeBeanService serviceFacade =
new ServiceFacadeBeanService(wsdlLocationURL, SERVICE_FACADE_QNAME);
ServiceFacade sfPort = serviceFacade.getServiceFacadeBeanPort();
Client client = ClientProxy.getClient(sfPort);
List<Interceptor<? extends Message>> ics = client.getBus().getOutInterceptors();
for (Interceptor ic: ics) {
if (ic instanceof LoggingOutInterceptor) {
LoggingOutInterceptor out = (LoggingOutInterceptor) ic;
out.setPrettyLogging(true);
out.setLimit(1024 * 1024 *1024);
}
}https://stackoverflow.com/questions/27819361
复制相似问题