camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen" ...@silverbullet.dk>
Subject RE: JBI Wrapper
Date Thu, 11 Sep 2008 18:07:25 GMT
Hi

You need to add camel-saxon.jar to the classpath, to get the xquery language.

To my knowledge .transform sets the output to the OUT message.
If you want to set the result on the IN message, then you can use .setBody instead.


Med venlig hilsen
 
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk

-----Original Message-----
From: raulvk [mailto:raul.kripalani@atosorigin.com] 
Sent: 11. september 2008 20:01
To: camel-user@activemq.apache.org
Subject: RE: JBI Wrapper



Yeah, using XQuery sounds like a good solution. Unfortunately, I tried it
and even though my Eclipse IDE recognises the method, the Camel Context in
ServiceMix mowns with the following error:

18:47:16,717 | DEBUG - org.apache.camel.processor.Pipeline - Message
exchange has failed so breaking out of pipeline: Exchange[JbiMessage:
org.apache.servicemix.jbi.messaging.NormalizedMessageImpl@5a12d5{properties:
{org.apache.camel.RedeliveryCounter=1,
javax.jbi.messaging.protocol.headers={},
org.apache.camel.Redelivered=true}}] exception:
org.apache.camel.NoSuchLanguageException: No language could be found for:
xquery fault: null


Perhaps this is only available from a certain Camel version up?

Actually, I want to apply the transformation on the In Message Body, and
overwrite it with the result, because the next endpoint along is Camel's
Validator with an XML Schema to check the message against. So I assume the
input should be in the In Message of the Exchange, not on the Out.

Also, the fact that the exchange is actually a JbiExchange doesn't affect
the usage of XQuery or XPath, right?

Another question: why can't I use XPath??? Is it only possible to use XPath
in Camel to write testing conditions for routing?

Thanks.


Claus Ibsen wrote:
> 
> Hi
> 
> What about good old fashioned regular expression? ;)
> 
> That reminds me, do we have a nice expression for this in Camel to use
> with the transform?
> 
> BTW: Check out Jonathans new unit test and you can see that you can use
> Camel directly with xquery.
> 
> 
> Med venlig hilsen
>  
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
> -----Original Message-----
> From: raulvk [mailto:raul.kripalani@atosorigin.com] 
> Sent: 11. september 2008 19:45
> To: camel-user@activemq.apache.org
> Subject: Re: JBI Wrapper
> 
> 
> Hi,
> 
> Thanks for the reply.
> 
> Is there a way of doing it without having to construct an XSLT sheet + the
> Saxon SU? By using XPath to SELECT the node-set that I want
> 
> Thanks.
> 
> 
> janstey wrote:
>> 
>> You can do this with the camel-saxon component. I've added a similar test
>> at
>> 
>> http://svn.apache.org/repos/asf/activemq/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryTransformTest.java
>> 
>> raulvk wrote:
>>> Hi,
>>>
>>> I am using Camel to control the flow of validation, transformation and
>>> routing tasks that are applied to messages entering via ServiceMix CXF's
>>> Binding Component. The CXF consumer endpoint sends the message
>>> straightaway
>>> to Camel.
>>>
>>> When validating the incoming message, I realized that it is surrounded
>>> by
>>> the <jbi:message> wrapper.
>>> How can I get rid of it so as to send the ACTUAL XML message to Camel's
>>> validator?
>>>
>>> I have tried the following:
>>>
>>>   -   .setBody().xpath("//jbi:message/jbi:part/can:IncomingMessage",
>>> m).to("validator:file:///<schemaLocation>")
>>>
>>>     AND
>>>   .   .transform().xpath("//jbi:message/jbi:part/can:IncomingMessage",
>>> m).to("validator:file:///<schemaLocation>")
>>>
>>> m is bound to a HashMap containing the NameSpace mappings.
>>>
>>> However, the result is always an empty XML Body, which provokes an
>>> exception
>>> at the Validator.
>>>
>>> Is there an easy way of EXTRACTING the XML payload?
>>>
>>> Thank you.
>>>   
>> 
>> 
>> 
> 
> -- 
> View this message in context:
> http://www.nabble.com/JBI-Wrapper-tp19439139s22882p19440442.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/JBI-Wrapper-tp19439139s22882p19440752.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message