0
こんにちは私は、ロギングにspring ws + slf4jを使用しています。SLF4jを使用したSpring wsログの問題
return (JAXBElement) getWebServiceTemplate().marshalSendAndReceive(uri, request, webServiceMessage -> {
SoapMessage soapMessage = (SoapMessage) webServiceMessage;
Marshaller marshaller = getMarshaller();
marshaller.marshal(jaxbElement, soapMessage.getSoapHeader().getResult());
});
:SOAP要求をログに記録しながらpropertiesinの下に使用して&応答は、代わりにそれは私が次の方法を使用してWebサービスを呼び出しています
13:13:06.155 [main] DEBUG o.s.ws.client.MessageTracing.sent - Sent request [SaajSoapMessage {http://ws.sample.customer.com/}getCustomerDetails]
13:13:06.411 [main] DEBUG o.s.w.client.MessageTracing.received - Received response [SaajSoapMessage {http://ws.sample.customer.com/}getCustomerDetailsResponse] for request [SaajSoapMessage {http://ws.sample.customer.com/}getCustomerDetails]
、次のオブジェクトを印刷し、ロギング要求&応答の
logging.level.org.springframework.ws.client.MessageTracing.sent=DEBUG
logging.level.org.springframework.ws.server.MessageTracing.sent=DEBUG
logging.level.org.springframework.ws.client.MessageTracing.received=TRACE
logging.level.org.springframework.ws.server.MessageTracing.received=TRACE
をapplication.properties
私はなぜそれが要求&応答を印刷していないのかわかりません。また、 "SoapEnvelopeLoggingInterceptor"または "ClientInterceptor"を使用して応答&を傍受しようとしましたが、何もトリガーされませんが応答オブジェクトを取得しました。
public class LogbackInterceptor implements ClientInterceptor {
private static final Logger logger = LoggerFactory.getLogger(LogbackInterceptor.class);
public boolean handleRequest(MessageContext messageContext) throws WebServiceClientException {
logger.debug("Sent request by sample [" + messageContext.getRequest() + "]");
return true;
}
public boolean handleResponse(MessageContext messageContext) throws WebServiceClientException {
logger.debug("Received response by sample [" + messageContext.getResponse() + "] for request [" +
messageContext.getRequest() + "]");
return true;
}
@Override
public boolean handleFault(MessageContext messageContext) throws WebServiceClientException {
// TODO Auto-generated method stub
return false;
}
@Override
public void afterCompletion(MessageContext messageContext, Exception ex) throws WebServiceClientException {
// TODO Auto-generated method stub
}
}
@Component
public class LoggingInterceptor extends SoapEnvelopeLoggingInterceptor{
private static final Logger logger = LoggerFactory.getLogger(LoggingInterceptor.class);
@Override
protected void logMessage(String message) {
System.out.println("Entered log message");
logger.debug("LoggingInterceptor::logMessage");
logger.debug(message);
/* Example, here you could be logging to DB or whatever you want */
}
}
誰かがこの問題に
LogbackInterceptorはインターフェイスです。このコードはどのように機能していますか? – Ravi