我正在使用Apache来读取Oracle AQ的消息。我在骆驼路线上使用Camel version 2.19.0、Spring 4和XML配置。在运行应用程序时,我得到了“类型从类型: org.xml.sax.SAXParseException".转换为所需类型的错误:值为?的org.w3c.dom.Document”。请有人告诉我什么是问题,以及如何在XML camel配置中修复它。
以下是相关的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?org.xml.sax.SAXParseException;lineNumber: 1;columnNumber: 1;prolog中不允许内容。在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)在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)
发布于 2017-06-09 06:24:43
看起来,Oracle消息没有正确地排出队列,而且xml有效负载被读取为???。您能否尝试将orai18n.jar添加到应用程序的类路径中,并查看它是否解决了这个问题。
https://stackoverflow.com/questions/44430565
复制相似问题