Я нашел решение, но оно не на 100% идеально.
Я реализовал интерфейс LogicalHandler
. Установите его в FactoryBean и проверьте в обработчике, является ли сообщение исходящим или входящим.
public class LoggingHandler implements LogicalHandler<LogicalMessageContext>
метод:
public boolean handleMessage(LogicalMessageContext context) {
Boolean outboundProperty = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
if (outboundProperty.booleanValue()) {
//log here
} else {
//or here
}
return true;
}
Это прекрасно работает, за исключением ситуации, когда я вызываю метод без ответа. Тогда метод вызывается только один раз, а не дважды, если есть ответ.