【问题标题】:Mule ESB: XML to Map Conversion failureMule ESB:XML 到地图转换失败
【发布时间】:2013-02-02 07:32:02
【问题描述】:

我的 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>

但是当我运行代码时出现这个错误:

错误 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:发现以元素“jdbc:xml-to-maps-transformer”开头的无效内容。 ' 之一是预期的。 在 org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(未知来源) 在 org.apache.xerces.util.ErrorHandlerWrapper.error(未知来源) 在 org.apache.xerces.impl.XMLErrorReporter.reportError(未知来源) 在 org.apache.xerces.impl.XMLErrorReporter.reportError(未知来源) 在 org.apache.xerces.impl.XMLErrorReporter.reportError(未知来源) 在 org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(未知来源) 在 org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(未知来源) 在 org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(未知来源)

为什么 XML 到 Map 的转换在这里会出现问题?有没有其他或更好的方法来做到这一点?

【问题讨论】:

    标签: mule


    【解决方案1】:

    为什么 XML 到 Map 的转换在这里会出现问题?

    xml-to-maps-transformer 仅适用于 Mule Entreprise Edition:您可能在 CE 上运行。

    是否有替代或更好的方法来做到这一点?

    在您的 JDBC 语句中使用 MEL xpath() 表达式直接从 XML 有效负载中检索值并将它们传递给 DB。

    阅读 MEL 备忘单以获取语法信息:http://blogs.mulesoft.org/wp-content/uploads/2012/12/refcard-mel.pdf

    【讨论】:

    • 您好,David,出于概念验证的目的,我正在尝试一个简单的用例,即从主题中读取消息并使用 JDBC 连接器将它们放入数据库中。这是代码:
    • 评论不是分享配置的地方。接受我的回答并使用配置打开一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 2014-04-27
    • 2012-06-05
    • 2020-04-09
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多