如何触发 WSO2 序列中的错误?
How to trigger an error in a WSO2 sequence?
我想创建一个输入序列,我在其中使用开关调解器检查参数。如果 param 的值不对应于特定字符串,则应抛出错误并将流程移动到 Fault 序列中。
例如,我创建了这个序列:
<sequence name="testEquivalence" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<switch source="$ctx:uri.var.myParam">
<case regex="hello">
<log description="DISPLAY" level="full">
<property name="value" value="RIGHT VALUE FOR THE PARAM myParam"/>
</case>
<default>
<log description="FAULT" level="full">
<property name="FAULT" value="WRONG VALUE FOR THE PARAM myParam"/>
</log>
<makefault version="pox">
<reason value="Wrong value"/>
<detail expression="'Wrong value. Try with hello.'"/>
</makefault>
</default>
</switch>
</sequence>
如您所见,如果可以,我想显示一条日志,上面写着 "RIGHT VALUE FOR THE PARAM myParam"。或者,我想显示一个日志,然后在默认部分停止进程以传入Fault序列。
但是,我为 "modelize" 我的错误创建了一个 makefault 调解器,但是否可以用更多的东西替换它...执行以停止流程并重定向故障序列中的流程,就像异常一样被扔了?
在 WSO2 中无法抛出异常 ESB/EI。通常在创建 SOAPFault 之后,您希望 return 将其发送给服务的调用者。解决方案是在故障调解器之后使用响应调解器:
<sequence name="testEquivalence" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<switch source="$ctx:uri.var.myParam">
<case regex="hello">
<log description="DISPLAY" level="full">
<property name="value" value="RIGHT VALUE FOR THE PARAM myParam"/>
</case>
<default>
<log description="FAULT" level="full">
<property name="FAULT" value="WRONG VALUE FOR THE PARAM myParam"/>
</log>
<makefault version="pox">
<reason value="Wrong value"/>
<detail expression="'Wrong value. Try with hello.'"/>
</makefault>
<respond/>
</default>
</switch>
</sequence>
我想创建一个输入序列,我在其中使用开关调解器检查参数。如果 param 的值不对应于特定字符串,则应抛出错误并将流程移动到 Fault 序列中。
例如,我创建了这个序列:
<sequence name="testEquivalence" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<switch source="$ctx:uri.var.myParam">
<case regex="hello">
<log description="DISPLAY" level="full">
<property name="value" value="RIGHT VALUE FOR THE PARAM myParam"/>
</case>
<default>
<log description="FAULT" level="full">
<property name="FAULT" value="WRONG VALUE FOR THE PARAM myParam"/>
</log>
<makefault version="pox">
<reason value="Wrong value"/>
<detail expression="'Wrong value. Try with hello.'"/>
</makefault>
</default>
</switch>
</sequence>
如您所见,如果可以,我想显示一条日志,上面写着 "RIGHT VALUE FOR THE PARAM myParam"。或者,我想显示一个日志,然后在默认部分停止进程以传入Fault序列。
但是,我为 "modelize" 我的错误创建了一个 makefault 调解器,但是否可以用更多的东西替换它...执行以停止流程并重定向故障序列中的流程,就像异常一样被扔了?
在 WSO2 中无法抛出异常 ESB/EI。通常在创建 SOAPFault 之后,您希望 return 将其发送给服务的调用者。解决方案是在故障调解器之后使用响应调解器:
<sequence name="testEquivalence" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<switch source="$ctx:uri.var.myParam">
<case regex="hello">
<log description="DISPLAY" level="full">
<property name="value" value="RIGHT VALUE FOR THE PARAM myParam"/>
</case>
<default>
<log description="FAULT" level="full">
<property name="FAULT" value="WRONG VALUE FOR THE PARAM myParam"/>
</log>
<makefault version="pox">
<reason value="Wrong value"/>
<detail expression="'Wrong value. Try with hello.'"/>
</makefault>
<respond/>
</default>
</switch>
</sequence>