You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Willem jiang <wi...@gmail.com> on 2013/08/01 03:36:36 UTC

Re: Correct way to read a CXF Message in MESSAGE format

I think you can try to use the CXF_MESSAGE data format.
This data format will consume the stream and invoke all the interceptors, and you can get the full of soap message from the camel body, I think you can get he soap header easily there.


--  
Willem Jiang

Red Hat, Inc.
FuseSource is now part of Red Hat
Web: http://www.fusesource.com | http://www.redhat.com
Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English)
          http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
Twitter: willemjiang  
Weibo: 姜宁willem




On Thursday, August 1, 2013 at 1:26 AM, John D. Ament wrote:

> Hi all
>  
> I'm dynamically binding a CXF endpoint to a processor instance, using a
> route like this:
>  
> from(simpleEndpointURI +
> "?dataFormat=MESSAGE&wsdlURL=wsdl/Import.wsdl&loggingFeatureEnabled=true").process(new
> ImportProcessor());
>  
> I setup a simple way of reading this body using an InputStream, but this
> seems wrong. I'm trying to get the soap headers and the soap body of the
> message. I'm using MESSAGE dataFormat because I can't seem to get the
> mustunderstand to process correctly without it.
>  
> From the docs:
>  
> MESSAGEMESSAGE is the raw message that is received from the transport
> layer. It is not suppose to touch or change Stream, some of the CXF
> interceptor will be removed if you are using this kind of DataFormat so you
> can't see any soap headers after the camel-cxf consumer and JAX-WS handler
> is not supported.
>  
>  
>  
> Which is fine for me, all I need is some data simply from the body. But is
> it possible to access the headers? I see everything fine in the
> InputStream, but it would make more sense if this were available somehow in
> a POJO/Java format. Is there a way I can use another dataFormat but get it
> to generate the MustUnderstand properly?
>  
> Thanks,
>  
> John  



Re: Correct way to read a CXF Message in MESSAGE format

Posted by "John D. Ament" <jo...@gmail.com>.
I ended up using DOM against the body of the message.  Not sure if there's
a better way.


On Wed, Jul 31, 2013 at 9:36 PM, Willem jiang <wi...@gmail.com>wrote:

> I think you can try to use the CXF_MESSAGE data format.
> This data format will consume the stream and invoke all the interceptors,
> and you can get the full of soap message from the camel body, I think you
> can get he soap header easily there.
>
>
> --
> Willem Jiang
>
> Red Hat, Inc.
> FuseSource is now part of Red Hat
> Web: http://www.fusesource.com | http://www.redhat.com
> Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/)
> (English)
>           http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
> Twitter: willemjiang
> Weibo: 姜宁willem
>
>
>
>
> On Thursday, August 1, 2013 at 1:26 AM, John D. Ament wrote:
>
> > Hi all
> >
> > I'm dynamically binding a CXF endpoint to a processor instance, using a
> > route like this:
> >
> > from(simpleEndpointURI +
> >
> "?dataFormat=MESSAGE&wsdlURL=wsdl/Import.wsdl&loggingFeatureEnabled=true").process(new
> > ImportProcessor());
> >
> > I setup a simple way of reading this body using an InputStream, but this
> > seems wrong. I'm trying to get the soap headers and the soap body of the
> > message. I'm using MESSAGE dataFormat because I can't seem to get the
> > mustunderstand to process correctly without it.
> >
> > From the docs:
> >
> > MESSAGEMESSAGE is the raw message that is received from the transport
> > layer. It is not suppose to touch or change Stream, some of the CXF
> > interceptor will be removed if you are using this kind of DataFormat so
> you
> > can't see any soap headers after the camel-cxf consumer and JAX-WS
> handler
> > is not supported.
> >
> >
> >
> > Which is fine for me, all I need is some data simply from the body. But
> is
> > it possible to access the headers? I see everything fine in the
> > InputStream, but it would make more sense if this were available somehow
> in
> > a POJO/Java format. Is there a way I can use another dataFormat but get
> it
> > to generate the MustUnderstand properly?
> >
> > Thanks,
> >
> > John
>
>
>