我需要得到一個JSON的內容,我需要傳遞這個JSON到一個Web服務誰將發送推,並重新發送到我的應用程序的JSON格式的響應。在我的應用程序中,如果推送發送成功,我必須對這個響應進行評論,否則必須發送一封電子郵件。對於我使用Postman的客戶端應用程序(Google Chrome擴展)。但爲了傳輸,我嘗試了很多東西。但我有點困惑,我不知道使用什麼組件,我試過這段代碼是否正確和足夠,或者有什麼改變,使我的代碼更好?! 需要我連接兩個流程?因爲我在第二個電話中有一個可變的電子郵件。如果是,我該怎麼做。先謝謝你。
注意:我正在使用mule 2.5.0 CE。POST JSON與騾esb
<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="8083" 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="token" value="#[message.payload.token]" 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-variable variableName="email" value="#[message.payload.email]" doc:name="Variable"/>
</foreach>
<json:object-to-json-transformer doc:name="Object to JSON"/>
<http:outbound-endpoint exchange-pattern="request-response" host="WS.com" port="8080" method="POST" doc:name="HTTP" path="api.php/push/send_test_push"/>
<logger message="#[message.payload.token]" level="INFO" doc:name="Logger"/>
</flow>
<flow name="flows1Flow2">
<quartz:inbound-endpoint jobName="HTTP-Puller-Scheduler" repeatInterval="1000" responseTimeout="10000" doc:name="Quartz" repeatCount="0">
<quartz:event-generator-job/>
</quartz:inbound-endpoint>
<http:outbound-endpoint exchange-pattern="request-response" host="WS.com" port="8080" method="GET" doc:name="HTTP" path="api.php/push/send_test_push"/>
<json:json-to-object-transformer
returnClass="java.lang.Object" doc:name="JSON to Object" />
<choice doc:name="Choice">
<when expression="#[message.payload.success=1]">
<logger message="its ok" level="INFO" doc:name="Logger" />
</when>
<otherwise>
<set-payload
value="Dear Mail Crawler,
\n\n No spam to my email, please!"
doc:name="Set Payload" />
<smtp:outbound-endpoint host="smtp.gmail.com"
port="587" responseTimeout="10000" doc:name="SMTP" connector-ref="Gmail"
from="Rajeun" password="pass" subject="Mule Test with Velocity Transformer"
to="#[flowVars['email']]" user="mymail%40gmail.com" />
</otherwise>
</choice>
</flow>
謝謝您的回覆和您的幫助。更改我的代碼並運行後,我得到這個錯誤:http://pastebin.com/9dGrrJe9另一個問題,我使用http(GET)恢復WS的響應。有一種方法可以在響應到達後運行get方法。或者如果石英是唯一的解決方案,我如何在響應到達後停止收聽。再次感謝你。 – Rajeun 2015-04-03 09:51:57
您使用url的方式是錯誤的..將完整的url粘貼到http:outbound-endpoint的地址屬性中,並從那裏刪除端口和主機 – 2015-04-03 11:20:30
檢查我更新的答案 – 2015-04-03 11:26:18