[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
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
Highlighted
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

2019 GARNER MAGIC QUADRANT FOR DATA INTEGRATION TOOL

Talend named a Leader.

Get your copy

OPEN STUDIO FOR DATA INTEGRATION

Kickstart your first data integration and ETL projects.

Download now

What’s New for Talend Summer ’19

Watch the recorded webinar!

Watch Now

Talend API Designer – Technical Overview

Take a look at this technical overview video of Talend API Designer

Watch Now

Getting Started with APIs

Find out how to get started with APIs

Read