我是OSB的新手。 1)我有一个服务S1,有两种方法说:AsyncQueryAccount,SyncQueryAccount。 AsyncQueryAccount具有输入参数id,name。 SyncQueryAccount具有输入参数id,name,addToQueue。
2)我有一个Service S2,其中一个方法是:AsyncQueryAccount。这有输入参数id,name。
我的目标是根据请求向代理服务器调用S1,S2。 如果操作是AsyncQueryAccount,那么它应该调用S1,S2中的后续方法。 如果操作是SyncQueryAccount,则它应调用AsyncQueryAccount,删除S2中的addToQueue和S1中的SyncQueryAccount。
为实现这一目标,我尝试了以下内容 代理 - >路线到S1 并作为路线S1的一部分 - >向S2添加了服务标注,详细说明: 如果$ operation =' SyncQueryAccount'或$ operation =' AsyncQueryAccount'然后在S2中调用AsyncQueryAccount。
调用AsyncQueryAccount时可以正常工作,但调用SyncQueryAccount时失败。
我们如何确保在调用SyncQueryAccount时,也会在S2中调用AsyncQueryAccount。
我收到错误说: 在RouteNode1'发生了系统错误。原因:' OSB服务标注操作收到SOAP故障响应'。请联系ESB系统管理员
答案 0 :(得分:0)
我理解你的问题,我认为流程应如下所示
代理 - >标注S2 - > if $ operation =' SyncQueryAccount'然后调用SycnQueryAccount特定服务(如果需要,请使用Xquery进行转换)或调出AsyncQueryAccount特定服务。
请尝试将请求有效负载分配到不同的变量中,因为我怀疑一旦收到First服务的响应,您的请求正在变更。