简体   繁体   English

Mule ESB - 如何处理来自Java组件中的网页的JSON请求

[英]Mule ESB - How to process a JSON request from a Webpage in a Java Component

I'm trying really hard to build the following scenario in Mule ESB 3: 1 - Send a Ajax request sending a JSON object to an AJAX endpoint in Mule ESB 2 - Map this JSON in a Java POJO using Json "Object to Json" component 3 - Invoke a Java method passing this converted object 我正在努力在Mule ESB 3中构建以下场景:发送Ajax请求将MSON对象发送到Mule ESB 2中的AJAX端点 - 使用Json“Object to Json”组件在Java POJO中映射此JSON 3 - 调用传递此转换对象的Java方法

I searched a lot of pages, but none has such a scenario. 我搜索了很多页面,但没有一个有这样的场景。 All the references doesn't have a complete example. 所有参考文献都没有完整的例子。

I know it's a very simple scenario, but its really, really hard to make such a dumb thing work in Mule ESB. 我知道这是一个非常简单的场景,但真的,真的很难在Mule ESB中做出如此愚蠢的事情。

Mule has JSON-to-Object transformer which can be used to get JSON elements. Mule具有JSON-to-Object转换器,可用于获取JSON元素。 So, when you receive a JSON input in your flow, you extract it using JSON-to-Object transformer and using return class as java.lang.Object or java.util.List or java.util.HashMap depending on your JSON. 因此,当您在流中收到JSON输入时,可以使用JSON-to-Object转换器提取它,并使用返回类作为java.lang.Objectjava.util.Listjava.util.HashMap具体取决于您的JSON。

For example if your JSON is following :- 例如,如果您的JSON如下: -

{
  "token" : 123,
  "id" : 456,
  "email" : "abc@abc.com",
  "status" : "Success"
}

Now, to extract the elements, you need to use :- 现在,要提取元素,您需要使用: -

<json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object" />

And then can extract like :- #[message.payload.email] or #[message.payload.status] 然后可以提取如下: - #[message.payload.email]#[message.payload.status]

创建一个带有入站HTTP端点的流,然后创建一个JSON到对象转换器(不是你说的那样),然后是组件或调用消息处理器,具体取决于Java对象的设计方式。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM