json - 使用 Anypoint Studio 转换 EMS 队列消息并插入数据库
问题描述
我正在尝试收听和使用 EMS 队列消息并将其转换为使用 Anypoint Studio 平台插入到数据库中。
您可以在下面找到 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](行:column)处的意外字符“G”,预期输入结束但将G, while reading
有效负载作为 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" >
推荐阅读
- webhooks - webhook 没有收到来自 kik 的传入消息
- objective-c - 如何关闭 NSURLSession dataTaskWithRequest
- javascript - 选中时从选择中删除选项
- scala - scala rdd中键的元组值
- swift - 更新 Core Data 中的值会导致 Swift 中的重复条目
- android - Xamarin 应用程序在一段时间后自行关闭
- botframework - 我的团队机器人如何响应在它自己的线程上发表的评论?
- android - RecycleView 列表中的最后一项位置错误
- python - 曲线插值:以什么顺序考虑坐标?
- java - 当另一个服务(如 WebRTC、Twilio)正在使用它时,有没有办法录制音频?