java Apache CFX自定义LogginInterceptor未被重写
我正在尝试创建自定义LogginInterceptor,但代码根本不会出现在自定义部分中。我的样本SOP@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@。我正在使用ApacheCfx和SpringBoot应用程序来使用SOAP服务。因此,尝试为记录器定制请求和响应。请帮助查找问题
自定义拦截器:
@Component
public class CustomLoggingInterceptor extends LoggingInInterceptor{
@Override
public void handleMessage(Message message) throws Fault {
System.out.println("@@@@@@@@handleMessage"+this.getClass().getName());
Logger logger = getCustomMessageLogger(message);
if (logger != null && (writer != null || logger.isLoggable(Level.INFO))) {
logging(logger, message);
}
}
Logger getCustomMessageLogger(Message message) {
if (isLoggingDisabledNow(message)) {
return null;
}
Endpoint ep = message.getExchange().getEndpoint();
if (ep == null || ep.getEndpointInfo() == null) {
return getLogger();
}
EndpointInfo endpoint = ep.getEndpointInfo();
if (endpoint.getService() == null) {
return getLogger();
}
Logger logger = endpoint.getProperty("MessageLogger", Logger.class);
if (logger == null) {
String logName = "org.apache.cxf.services." ;
logger = LogUtils.getL7dLogger(this.getClass(), null, logName);
endpoint.setProperty("MessageLogger", logger);
}
return logger;
}
}
服务电话:-
UserService service = getUserServiceForEndpoint("URL");
Client client = ClientProxy.getClient(service);
Endpoint endpoint = client.getEndpoint();
endpoint.getOutInterceptors().add(wssOutInterceptor);
endpoint.getOutInterceptors().add(loggingOutInterceptor);
endpoint.getOutFaultInterceptors().add(loggingOutInterceptor);
endpoint.getInInterceptors().add(customLoggingInterceptor );
endpoint.getInFaultInterceptors().add(customLoggingInterceptor);
# 1 楼答案
通过定制LoggingOutinerCeptor,我的问题解决如下:
更新的日志片段: