Mule ESB:XML映射转换失败

时间:2013-02-01 23:17:44

标签: mule

我的JMS主题中有我想要阅读的消息&使用Mule JDBC数据库适配器存储在表中,我知道我必须将JMS XML消息转换为映射有效负载,以便将其轻松放入JDBC中。这是示例流程:

<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 to Map转换是一个问题?是否有替代或更好的方法来做到这一点?

1 个答案:

答案 0 :(得分: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