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