Я пытаюсь добавить запрос мыла и ответ в базу данных с помощью пользовательских LoggingInInterceptors.С перехватчиками входа и выхода запрос и ответ регистрируются в 2 разных строках.Но мне нужно войти в одну запись.
Есть ли возможность записать и запрос, и ответ в одну строку?
Ниже добавлено 2 перехватчика для ввода и вывода и обработки запроса и ответаи вставка в БД.Благодаря этому он вставляется в 2 ряда.Существует ли какой-либо механизм для передачи данных запроса на выходные перехватчики, чтобы оба они могли одновременно регистрироваться в одной записи.
class LogOutInterceptor extends LoggingOutInterceptor{
public LogOutInterceptor() {
super(Phase.PRE_STREAM)
}
@Override
public void handleMessage(Message message) throws Fault {
OutputStream out = message.getContent(OutputStream.class)
final CacheAndWriteOutputStream newOut = new CacheAndWriteOutputStream(out)
message.setContent(OutputStream.class, newOut)
newOut.registerCallback(new LoggingCallback())
}
public class LoggingCallback implements CachedOutputStreamCallback {
public void onFlush(CachedOutputStream cos) {
}
public void onClose(CachedOutputStream cos) {
try {
StringBuilder builder = new StringBuilder()
cos.writeCacheTo(builder, -1)
String request = builder.toString()
// adding request into DB
} catch (Exception e) {
e.printStackTrace()
}
}
}
class LogInInterceptor extends LoggingInInterceptor {
public LogInInterceptor() {
super()
}
@Override
protected String formatLoggingMessage(LoggingMessage loggingMessage) {
String soapXmlPayload = loggingMessage.getPayload() != null ? loggingMessage.getPayload().toString() : null
// adding response into DB
return super.formatLoggingMessage(loggingMessage)
}
}
}