Camel AQ 路由错误 TypeConversionException at Xpath.



我正在使用Apache Camel从Oracle AQ读取消息。我正在使用Camel version 2.19.0Spring 4骆驼路线的XML配置。运行应用程序时,我收到">从类型:java.lang.String 到所需类型:org.w3c.dom.Document 的类型转换过程中出错,值为 ???due org.xml.sax.SAXParseException"。有人可以让我知道可能是什么问题以及如何在XML驼峰配置中解决它。

下面是相关的 XML 内容。

<camelContext id="moveId" shutdownRunningTask="CompleteCurrentTaskOnly" xmlns="http://camel.apache.org/schema/spring" xmlns:dret="http://mycompany.com/data/user">
<route id="dataRoute" errorHandlerRef="transactionErrorHandler">
<from uri="myAQ:MYDB.AQ_MYQ_Q"/>
<setHeader headerName="userId">
<xpath resultType="java.lang.String">//dret:userId</xpath>
</setHeader>       
<policy ref="PROPAGATION_REQUIRED_MY_AQ">
<process ref="myEventProcessor"/>
</policy>
</route>

下面是堆栈跟踪。

org.apache.camel.TypeConversionException: 类型转换期间出错 从类型:java.lang.String 到所需类型:org.w3c.dom.Document 具有价值???due org.xml.sax.SAXParseException;行号: 1; 列数: 1;内容不允许在 prolog 中使用。 at org.apache.camel.impl.converter.BaseTypeConverterRegistry.createTypeConversionException(BaseTypeConverterRegistry.java:629) at org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:150) at org.apache.camel.builder.xml.XPathBuilder.doGetDocument(XPathBuilder.java:1144) at org.apache.camel.builder.xml.XPathBuilder.getDocument(XPathBuilder.java:1123) at org.apache.camel.builder.xml.XPathBuilder.doInEvaluateAs(XPathBuilder.java:915) at org.apache.camel.builder.xml.XPathBuilder.evaluateAs(XPathBuilder.java:809) at org.apache.camel.builder.xml.XPathBuilder.evaluate(XPathBuilder.java:779) at org.apache.camel.builder.xml.XPathBuilder.evaluate(XPathBuilder.java:167)

看起来Oracle AQ消息没有正确取消排队,并且xml有效负载被读取为???。您能否尝试将orai18n.jar添加到应用程序的类路径中,看看它是否可以解决问题。

最新更新