【问题标题】:Transform EMS Queue message and insert into DB using Anypoint Studio使用 Anypoint Studio 转换 EMS 队列消息并插入数据库
【发布时间】:2020-08-11 02:26:31
【问题描述】:

我正在尝试使用 Anypoint Studio 平台收听和使用 EMS 队列消息并将其转换为插入到数据库中。

您可以在下面找到 EMS 队列消息的示例,以及目标数据库表的结构,以及我遇到的错误,我找不到任何可以帮助我解决此问题的信息,希望您能深入了解如何解决它!谢谢!

EMS 队列消息:1 Lopez, Gerardo 22/07/1994 323 Corona, San Pedro, Mexico 8177228822

目标数据库表列:id、first_name、last_name、birth_date、street、city、country、phone 我需要在相应的列中插入适当的数据并将所有字符转换为小写,您可以在下面找到我做错了什么以及我得到的错误!

原因:org.mule.weave.v2.module.reader.ReaderParsingException:payload@[1:4] (line:column) 处的意外字符“G”,预期输入结束但得到G, while reading payload ` 作为 Json。

所有 EMS 队列消息都重复相同的消息!

【问题讨论】:

    标签: json mule dataweave tibco-ems


    【解决方案1】:

    我猜 EMS 是指 TIBCO EMS。看起来应用程序正在接收来自 TIBCO EMS 队列的消息,该消息是字符串:

    16 Gonzalez, Martin...
    

    出于某种原因,DataWeave 试图将其解析为 JSON 文档。这在错误中很清楚。它在 G 中失败,因为开头是一个数字,所以 JSON 的解析器并不期望那里有 G 字符。一个数字本身就是一个完全有效的 JSON 文档。

    您必须为输入设置正确的格式。如果 TIBCO EMS 连接器正在从消息中接收 application/json,则应从发送方更改。

    如果你需要强制格式,你可以使用 set payload 虽然我不建议强制它,除非没有其他选择:

    <set-payload value="#[payload]" mimeType="text/plain" >
    

    【讨论】:

    • 是的,它是 TIBCO EMS,我有消息类型为文本的 JMSSendMessage,所以这让我觉得我需要强制它,但我不确定在哪里添加您提供的代码!我对使用这项技术很陌生
    • 只需在监听器和转换之间添加即可。如果您对 UI 更满意,请在调色板中搜索 set payload 组件。
    猜你喜欢
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2021-07-23
    • 1970-01-01
    相关资源
    最近更新 更多