Hi,

The message of PAYLOAD dataFormat will take out soap envelope and put
the payload message into the message.
You can use List<Element> partList = iMsg.getBody(List.class) to get the
payload message and Element header = iMsg.getBody(Element.class) to get
the soap header.

Willem

mario_horny wrote:
> Hi all,
> 
> I have a custom processor that needs to transform a cxf message before it is
> routed to the destination endpoint. The code of the process() method looks
> like that:
> 
> public void process( Exchange e ) {
> 
> Message iMsg = e.getIn();
> 
> msgStr = iMsg.getBody(String.class).toString();
> 
> System.out.println("Received msg=" + msgStr );
> 
> // do the transformation ....
> String transStr = doTransform( msgStr );
> 
> Message oMsg = e.getOut();
> 
> oMsg.setBody( transStr);
> 
> }
> 
> This works pretty fine, if the dataFormat is POJO or MESSAGE. In these
> cases, the Java parameter (POJO) or the whole xml message (MESSAGE) are
> printed out by the println(...) . If the dataFormat is PAYLOAD, only the
> class reference [EMAIL PROTECTED] is printed out.
> 
> I could find no way to get the payload data as a string. I read that I need
> to write an own converter to get the data, but at the end of the day my
> problem is that I could find no way to get the data in any format (I'm not
> fixed to use a string object). 
> I tried to get the body as a Map, InputStream, Collection,
> MessageContentsList... but non of these classes worked. I found out that
> some the classes work for some dataFormats (InputStream works fine for
> MESSAGE, MessageContentsList works fine for POJO), but nothing worked out
> for PAYLOAD. 
> 
> Does anybody have an example how to access the message body for
> dataFormat=PAYLOAD ? Is there a common way to access the body for all
> dataFormats ? 
> 
> Many thanks in advance,
> Mario

Reply via email to