One Star

[resolved] XPath in a Route not working

Hello,
I'm developing a route in Talend Studio (we have Talend 5.1.2). I'm having several problems
The most blocking is about extracting a data from our incoming XML with an XPath query (in a cSetHeader component). I got the following exception
cLog_2 INFO Exchange]
:1:1: Premature end of file.
DefaultErrorHandler ERROR Failed delivery for (MessageId: ID-HL-27-59661-1383840349964-0-2 on ExchangeId: ID-HL-27-59661-1383840349964-0-1). Exhausted after delivery attempt: 1 caught: org.apache.camel.TypeConversionException: Error during type conversion from type: org.apache.camel.converter.stream.InputStreamCache to the required type: org.w3c.dom.Document with value org.apache.camel.converter.stream.InputStreamCache@7a0280ad due org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file.
org.apache.camel.TypeConversionException: Error during type conversion from type: org.apache.camel.converter.stream.InputStreamCache to the required type: org.w3c.dom.Document with value org.apache.camel.converter.stream.InputStreamCache@7a0280ad due org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file.
at org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:117)
at org.apache.camel.builder.xml.XPathBuilder.doGetDocument(XPathBuilder.java:961)
at org.apache.camel.builder.xml.XPathBuilder.getDocument(XPathBuilder.java:940)
at org.apache.camel.builder.xml.XPathBuilder.doInEvaluateAs(XPathBuilder.java:785)
at org.apache.camel.builder.xml.XPathBuilder.evaluateAs(XPathBuilder.java:692)
at org.apache.camel.builder.xml.XPathBuilder.evaluate(XPathBuilder.java:662)
at org.apache.camel.builder.xml.XPathBuilder.evaluate(XPathBuilder.java:147)
In the attached screenshot I show this part of the route, as well as the configuration of the cSetHeader component
Any idea??
Regards,
Enrique

PS: Should I post here the other problems, or rather one problem per post?
1 ACCEPTED SOLUTION

Accepted Solutions
One Star

Re: [resolved] XPath in a Route not working

Hello,
I've created a new topic for the last problem:
http://www.talendforge.org/forum/viewtopic.php?id=32847
Best,
Enrique
3 REPLIES
Employee

Re: [resolved] XPath in a Route not working

Hi Enrique,
Try adding a cConvertBody before the cSetHeader. Just use its default conversion target (String). This should prepare the body to be read by the XPath processor.
Best Regards,
-Ben
One Star

Re: [resolved] XPath in a Route not working

Hi Ben,
Thank you for your response. I found that the XPath was also failing because the ftp component modifies the body in. So I added a wiretap component with the settings attached in the 3rd screenshot.
The XPath seems to work, but I can't use it in my cHTTP. I want to use this header as a param for my GET request (see 4th screenshot in my first post), but I get this request:
GET /hlEndpoint/getStatus?orderNum=%24%7Bheader.newOrderId%7D HTTP/1.1

Any idea how to resolve this header variable?
Best regards,
Enrique
One Star

Re: [resolved] XPath in a Route not working

Hello,
I've created a new topic for the last problem:
http://www.talendforge.org/forum/viewtopic.php?id=32847
Best,
Enrique