【问题标题】:Mule ESB - How to process a JSON request from a Webpage in a Java ComponentMule ESB - 如何在 Java 组件中处理来自网页的 JSON 请求
【发布时间】:2014-01-07 00:06:50
【问题描述】:
我正在努力在 Mule ESB 3 中构建以下场景:
1 - 发送 Ajax 请求,将 JSON 对象发送到 Mule ESB 中的 AJAX 端点
2 - 使用 Json“Object to Json”组件在 Java POJO 中映射此 JSON
3 - 调用传递此转换对象的 Java 方法
我搜索了很多页面,但没有一个有这样的场景。所有的参考文献都没有完整的例子。
我知道这是一个非常简单的场景,但是在 Mule ESB 中让这样一个愚蠢的东西工作真的非常非常困难。
【问题讨论】:
标签:
java
ajax
json
mule
esb
【解决方案1】:
Mule 具有 JSON-to-Object 转换器,可用于获取 JSON 元素。
因此,当您在流程中收到 JSON 输入时,您可以使用 JSON-to-Object 转换器将其提取出来,并使用返回类作为 java.lang.Object 或 java.util.List 或 java.util.HashMap,具体取决于您的 JSON。
例如,如果您的 JSON 如下:-
{
"token" : 123,
"id" : 456,
"email" : "abc@abc.com",
"status" : "Success"
}
现在,要提取元素,您需要使用:-
<json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object" />
然后可以像这样提取:- #[message.payload.email] 或 #[message.payload.status]
【解决方案2】:
使用入站 HTTP 端点创建一个流,然后创建一个 JSON 到对象转换器(而不是您所说的其他方式),然后创建一个组件或调用消息处理器,具体取决于您的 Java 对象的设计方式。