【发布时间】:2017-11-09 20:44:49
【问题描述】:
我正在使用 Apache Camel 从 Oracle AQ 读取消息。我正在使用 Camel version 2.19.0、Spring 4 和 Camel Routes 的 XML 配置。在运行应用程序时,我收到“从类型转换期间出错:java.lang.String 到所需类型:org.w3c.dom.Document,值为 ???由于 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 有价值???由于 org.xml.sax.SAXParseException;行号:1; 列号:1;序言中不能有内容。 在 org.apache.camel.impl.converter.BaseTypeConverterRegistry.createTypeConversionException(BaseTypeConverterRegistry.java:629) 在 org.apache.camel.impl.converter.BaseTypeConverterRegistry.convertTo(BaseTypeConverterRegistry.java:150) 在 org.apache.camel.builder.xml.XPathBuilder.doGetDocument(XPathBuilder.java:1144) 在 org.apache.camel.builder.xml.XPathBuilder.getDocument(XPathBuilder.java:1123) 在 org.apache.camel.builder.xml.XPathBuilder.doInEvaluateAs(XPathBuilder.java:915) 在 org.apache.camel.builder.xml.XPathBuilder.evaluateAs(XPathBuilder.java:809) 在 org.apache.camel.builder.xml.XPathBuilder.evaluate(XPathBuilder.java:779) 在 org.apache.camel.builder.xml.XPathBuilder.evaluate(XPathBuilder.java:167)
【问题讨论】:
-
同时添加您的 xml 文件
-
添加了 XML sn-p。问题在于使用 XPATH 设置标题。
标签: java spring oracle apache-camel