使用 Anypoint Studio 转换 EMS 队列消息并插入到数据库中

Transform EMS Queue message and insert into DB using Anypoint Studio

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

您可以在下面找到 EMS 队列消息的示例和目标数据库的结构 table,以及我遇到的错误,我找不到任何可以帮助我解决这个问题的东西,将不胜感激任何有关如何解决它的见解!谢谢!

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

目标数据库 Table 列:id,first_name,last_name,birth_date,街道,城市,国家,phone 我需要在相应的列中插入适当的数据并将所有字符转换为小写,下面你可以找到我做错了什么以及我得到的错误!

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

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

我猜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" >