17.4.4. 如何在 RAW 模式中启用 CXF 的 LoggingOutInterceptor
cxf 的 LoggingOutInterceptor 输出出站消息,这些消息会线路记录系统(Java Util Logging)。由于 LoggingOutInterceptor 处于 PRE_STREAM 阶段(但 PRE_STREAM 阶段在 RAW 模式中被删除),因此您必须将 LoggingOutInterceptor 配置为在 WRITE 阶段运行。以下是一个示例:
@Bean
public CxfEndpoint serviceEndpoint(LoggingOutInterceptor loggingOutInterceptor) {
CxfSpringEndpoint cxfEndpoint = new CxfSpringEndpoint();
cxfEndpoint.setAddress("http://localhost:" + port
+ "/services" + SERVICE_ADDRESS);
cxfEndpoint.setServiceClass(org.apache.camel.component.cxf.HelloService.class);
Map<String, Object> properties = new HashMap<String, Object>();
properties.put("dataFormat", "RAW");
cxfEndpoint.setProperties(properties);
cxfEndpoint.getOutInterceptors().add(loggingOutInterceptor);
return cxfEndpoint;
}
@Bean
public LoggingOutInterceptor loggingOutInterceptor() {
LoggingOutInterceptor logger = new LoggingOutInterceptor("write");
return logger;
}