2013-02-01 50 views
0

我在我的JMS主題中有消息,我想讀取&使用Mule JDBC數據庫適配器存儲在一個表中,我知道我必須將JMS XML消息轉換爲對於容易把它在JDBC.Here地圖的有效載荷爲樣本流量:Mule ESB:XML到地圖轉換失敗

<flow name="DBLoggerFlow"> 
    <jms:inbound-endpoint topic="${topic.logTopic}" 
     connector-ref="jmsConnector" doc:name="JMS"> 
    <jms:transaction action="NONE" timeout="${queue.transaction.timeout}" /> 
    </jms:inbound-endpoint> 
    <jdbc:xml-to-maps-transformer name="XMLToMaps"/> 
    <jdbc:outbound-endpoint queryKey="insertion" 
      connector-ref="insertionConnector"/> 
</flow> 

不過我,當我運行的代碼得到這個錯誤:

 
ERROR 2013-02-01 13:00:26,427 [WrapperListener_start_runner] org.mule.module.launcher.application.DefaultMuleApplication: null 
org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'jdbc:xml-to-maps-transformer'. One of ' is expected. 
     at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 
     at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source) 
     at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
     at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
     at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) 
     at org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown Source) 
     at org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown Source) 
     at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source) 

爲什麼在這裏轉換映射的問題XML ?有沒有其他的或更好的方法來做到這一點?

回答

0

爲什麼XML to Map轉換是一個問題?

xml-to-maps-transformer僅適用於Mule Entreprise Edition:您可能正在CE上運行。

有沒有其他方法或更好的方法呢?

在您的JDBC語句中使用MEL xpath()表達式來直接從XML負載中檢索值並將它們傳遞給數據庫。

閱讀語法信息的MEL小抄:http://blogs.mulesoft.org/wp-content/uploads/2012/12/refcard-mel.pdf

+0

您好大衛,對概念,我試圖從一個主題閱讀郵件及將其付諸使用JDBC連接數據庫的簡單使用情況的證明的目的。這裏是代碼: – insaneyogi

+0

評論是不是共享配置的地方。接受我的答案並用配置打開一個新問題。 –