[resolved] XPath in a Route not working

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?

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

All Replies
Highlighted
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

Cloud Free Trial

Try Talend Cloud free for 30 days.

Tutorial

Introduction to Talend Open Studio for Data Integration.

Definitive Guide to Data Integration

Practical steps to developing your data integration strategy.

Definitive Guide to Data Quality

Create systems and workflow to manage clean data ingestion and data transformation.