I think you can give Simple Language's OGNL a try (on CxfPayload object) to avoid writing Java code.
On 12/14/2010 10:40 AM, ext2 wrote: >> Camel message header is used by transport header and other Camel >> "internal" header. > Is it the design principles of camel? Only transport header and Internal > header? > >> If you jam the SOAP header in there, not only it can >> create a mess. How can other components tell it is not a "transport" >> header but it is a header of your SOAP message? If you think about it, >> the SOAP header is really a part of the a SOAP message which is the >> payload of Camel message. >> Also, the Camel header would be propagated as >> protocol" header such as HTTP unless it is filtered out. > Maybe you are right, but how the resolve the question "facilitate to use > camel as web service mediator"? > Or camel cannot act as a better mediator for webservice? > > ----original----- > Sender: William Tam [mailto:email.w...@gmail.com] > Date: 2010/12/14 23:10 > Receiver: users@camel.apache.org > Subject: Re: Questions of how to simplify using Camel as mediator for > WebService > > > > On 12/14/2010 08:51 AM, ext2 wrote: >> Hi: >> >> The cxf component (payload model)will wrapped the soap message in a >> CXFPayLoad or a CXFMessage. Both are not advantage for camel's script >> language to access headers and body xml。 >> I cannot use a simple expression etc: simple language or xpath >> language to access the soap header. That means I must always write a java >> program to query the soap xml even for a very simple usage; > You can try MESSAGE mode. You will get the entire SOAP message in one > XML. CxfPayload gives you access to individual header or body part as a > Element and you don't have to parse the SOAP message. In MESSAGE mode, > you get to parse the SOAP message which sounds like what you want. > >> I am not sure why the camel's cxf component doesn't map soap header >> to message header,soap body to message body. >> If so , the end user can use camel as mediator for Web Service >> more simply; >> > That may be true if Camel has only one component - camel-cxf. >> Thanks for suggestion >> >> >> > >