2015-04-04 88 views
0

我想将两个应用程序与我的mule应用程序相链接。所以它必须从第一个(味精,令牌)获得信息,并添加另一个信息(电子邮件)并将所有这些信息重播到第二个应用程序。 这是我的代码:如何将JSON从应用程序传递到我的mule应用程序

<db:mysql-config name="MySQL_Configuration" host="localhost" port="3306" user="root" database="mulesoft" doc:name="MySQL Configuration"/> 
    <smtp:gmail-connector name="Gmail" validateConnections="true" doc:name="Gmail"/> 
<flow name="flows1Flow1"> 

    <http:inbound-endpoint host="localhost" port="8084" encoding="UTF-8" doc:name="HTTP"/> 
     <json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object"/> 
     <set-variable variableName="msg" value="#[message.payload.msg]" doc:name="Variable"/> 
     <set-variable variableName="tkn" value="#[message.payload.tkn]" doc:name="Variable"/> 
     <db:select config-ref="MySQL_Configuration" doc:name="Database"> 
      <db:parameterized-query><![CDATA[select * from push where token = #[message.payload['token']]]]></db:parameterized-query> 
     </db:select> 
     <foreach doc:name="For Each"> 
      <set-session-variable variableName="email" value="#[message.payload.email]" doc:name="Session Variable"/> 
      <json:object-to-json-transformer doc:name="Object to JSON"/> 
      <http:outbound-endpoint exchange-pattern="request-response" method="POST" address="http://slice.WS.com/api.php/push/send_test_push" contentType="application/json" doc:name="HTTP"/> 
     </foreach> 

</flow> 

当我与邮差发布JSON信息测试(谷歌浏览器扩展)我得到这样的结果: enter image description here

  1. 有什么不对?
  2. 如何从第二个应用程序(Web服务)恢复json格式的响应?
    预先感谢您。

回答

0

您不会构建可正确通过HTTP序列化的特定响应对象,因此Mule会使用流的最新消息处理器产生的响应作为响应。

就你的情况而言,for-each产生一个List对象,Mule将它作为HTTP响应尽职尽责地序列化。

您需要添加一个http:response-builder元素和一个set-payload消息处理器来创建对入站端点的调用者有意义的HTTP响应。

例子:

<set-payload value="OK"/> 
<http:response-builder status="200" contentType="text/plain" /> 

参考:http://www.mulesoft.org/documentation/display/current/HTTP+Response+Builder

+0

我等着你有用的答案。请看看我做了什么,我得到的错误,我真的需要你的帮助,我必须在星期一之前做这个测试。新的代码:http://pastebin.com/EfWcWpp5这是错误:http://pastebin.com/W5t4Td6W感谢您的时间,请请请我怎么做第二方的测试,我试了很多的东西,但没有任何作品。 – Rajeun 2015-04-04 13:19:34

+0

但是......响应构建器和集合有效载荷必须是for-each的**外部**。重新阅读我的答案:我告诉过你,每一个产生一个列表! – 2015-04-04 13:41:49

+0

完成但仍然给出相同的错误。 – Rajeun 2015-04-04 13:52:22

相关问题