0
カスタムLoggingInInceptceptorを作成しようとしていますが、カスタムパートにコードがまったく入っていません。サンプルSOP @@@@@@@@ handleMessageも印刷されません。Apacheを使用していますSOAPサービスを消費するSpringBootアプリケーションを使用しているCFX。ロガーのリクエストと応答をカスタマイズしようとしました。問題を見つけるのを助けてください。Apache CFXカスタムLoggingInInceptceptorがオーバーライドされていません
カスタムインターセプタ:
@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;
}
}
サービスコール: - 私の問題は、以下のように解決されLoggingOutInterceptorをカスタマイズして
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);