2017-06-08 2 views
0

Oracle AQからメッセージを読み取るのにApache Camelを使用しています。 Camel RoutesのXML設定でCamel version 2.19.0,Spring 4を使用しています。アプリケーションを実行しているときに、タイプ:java.lang.Stringから必要なタイプ:org.w3c.dom.Documentにvalue ??? due org.xml.sax.SAXParseException "の型変換中に「」というエラーが発生しています。誰かが私に問題となる可能性があることとXMLラクダの設定でそれを修正する方法を教えてください。Camel AQルーティング・エラーXpathでのTypeConversionException

関連する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;コンテンツはプロローグで許可されていません。 (org.apache.camel.impl.converter.BaseTypeConverterRegistry.java:150) at 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)

+0

xmlファイルも追加 –

+0

XMLスニペットが追加されました。問題は、XPATHを使用してヘッダを設定することです。 – user7615505

答えて

1

Oracle AQメッセージが正しくデキューされないように見え、xmlペイロードが???と読み取られています。 orai18n.jarをアプリケーションのクラスパスに追加し、問題が解決するかどうか確認してください。

関連する問題