我认为这是一个相当简单的服务链方案。
我只想将一些数据转发给代理服务,然后代理服务将遍历数据并使用该数据的ID(" entity_id")(它可以成功检索)查找位于WSO2数据服务服务器中的资源。一旦它有了该请求的结果,我想将它转发给另一个应用程序(在这种情况下是RequestBin)。
请查看下面的代理配置:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="pollService"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<log level="full"/>
<iterate id="iter1"
expression="//*[local-name()='Change']"
sequential="true">
<target sequence="anon">
<sequence>
<log level="full"/>
<property name="uri.var.entityid" expression="//*[local-name()='entity_id']"/>
<call>
<endpoint>
<http method="get"
uri-template="http://54.66.155.36:9764/services/civicrm/activity/{uri.var.entityid}"/>
</endpoint>
</call>
<log level="full"/>
<call>
<endpoint>
<http method="post" uri-template="http://requestb.in/1c79v711"/>
</endpoint>
</call>
<log level="full"/>
</sequence>
</target>
</iterate>
</inSequence>
</target>
<description/>
</proxy>
我目前没有任何迹象表明这两个电话根本就被解雇了。
非常感谢任何协助。
谢谢。
答案 0 :(得分:0)
您可以启用wirelog并验证是否已触发呼叫。 请参阅以下博客文章,了解有关wirelog的信息。
1 http://mytecheye.blogspot.in/2013/09/wso2-esb-all-about-wire-logs.html
答案 1 :(得分:0)
您是否也可以提供示例消息(进入代理的内容),并查看代理中发生的更详细的细节,进入[esb-home] / repository / conf /并打开log4j.properties文件,并设置 log4j.category.org.apache.synapse = DEBUG,也像@robin一样建议。试试
<log level="full" category="DEBUG" separator="-----:-----"/>
在您的代理中,您希望在此处查看消息的状态。