Cxf bc will do the message tranform between soap wrapper and jbi wrapper.
If you want to see the raw soap message content, you can add logger
inteceptor configuration for the cxf bc endpoint, something like
<cxfbc:inInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
</cxfbc:inInterceptors>
<cxfbc:outInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
</cxfbc:outInterceptors>
Freeman
Crimor wrote:
I have an CXF SU, BC and SA component. The BC component refers to an
eip:wireTape this grap the incoming http message and sends a copy of this
message to a logger component:
public class MessageLogger extends ComponentSupport implements
MessageExchangeListener {
private static final Log logger =
LogFactory.getLog(MessageLogger.class);
private SourceTransformer sourceTransformer = new SourceTransformer();
@Resource
private DeliveryChannel channel;
public void onMessageExchange(MessageExchange exchange) throws
MessagingException {
NormalizedMessage inMessage = getInMessage(exchange);
try {
logger.info("received payload " +
sourceTransformer.toString(inMessage.getContent()));
} catch(TransformerException e) {
logger.error("error while reading payload", e);
}
exchange.setStatus(ExchangeStatus.DONE);
channel.send(exchange);
}
}
The original message routs to the CXF SU Component. This works fine but the
logger does not log the pure content of the message. It allways logs the jbi
message, but by my understanding the component themselves shouldn't know
anything of how the message is send and if i ask for the content of this
message (inMessage.getContent()) i only want the original http request not
the jbi message. How can I achieve this?