我有这个WSO2 ESB代理:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="sid008" transports="http" startOnLoad="true" trace="disable">
<target>
<inSequence>
<switch source="get-property('inquiryId')">
<log level="full"/>
<case regex="">
<send/>
</case>
<default>
</default>
</switch>
</inSequence>
<outSequence>
<....some processing..>
<send/>
</outSequence>
</target>
<publishWSDL key="CommonService.wsdl">
<resource location="request.xsd" key="request.xsd"/>
<resource location="response.xsd" key="response.xsd"/>
<resource location="SMEV.xsd" key="SMEV.xsd"/>
<resource location="statusAndError.xsd" key="statusAndError.xsd"/>
</publishWSDL>
</proxy>
在默认情况下,此代理在没有send mediator的情况下不运行outSequence
。如果没有发送调解员,我怎么能这样做
答案 0 :(得分:2)
请尝试以下配置:
<default>
<... some processing ...>
<header action="remove" name="To"/>
<property action="set" name="RESPONSE" scope="default" type="STRING" value="true"/>
<send/>
</default>
使用此配置,您将直接从inSequence部分向客户端发送响应(您不会进入outSequence)。
答案 1 :(得分:1)
In和Out序列背后的理性是:
在seq中:当消息从客户端进入代理服务时,它始终转到按顺序。
Out Seq:当代理服务从ESB向后端服务发送消息时,响应将始终为Out seq(除非使用接收seq指定序列。)
希望这会有所帮助。