如何使用故障中介器来响应故障



我正在尝试使用WSO2 EI故障中介,但故障响应总是给我一条无效响应消息。这里的重点是尝试构建自定义故障消息。我的示例API代码:

<?xml version="1.0" encoding="UTF-8"?>
<api context="/test" name="TestFaultAPI" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="GET" uri-template="/{teste}">
<inSequence>
<log description="" level="full" separator=";">
<property expression="get-property('uri.var.teste')" name="Path"/>
<property expression="get-property('transport','Content-Type')" name="ContentType"/>
</log>
<filter xpath="get-property('uri.var.teste') != '1234'">
<then>
<log description="" level="full">
<property name="Entrada" value="&quot;Fault Way&quot;"/>
</log>
<makefault description="" version="soap11">
<code value="soap11Env:Client" xmlns:soap11Env="http://schemas.xmlsoap.org/soap/envelope/"/>
<reason value="Recruso incorreto"/>
<detail>incorrect Resource</detail>
</makefault>
<respond/>
</then>
<else>
<log level="full">
<property name="Caminho" value="&quot;Corret Way&quot;"/>
</log>
<payloadFactory media-type="json">
<format>{&#xd;
"Status":"Correct Resource"&#xd;
}</format>
<args/>
</payloadFactory>
<respond/>
</else>
</filter>
</inSequence>
<outSequence/>
<faultSequence>
<log level="full" separator=";">
<property name="Caminho" value="&quot;Entrou Fault Sequence&quot;"/>
</log>
<property description="" name="HTTP_SC" scope="axis2" type="INTEGER" value="400"/>
<payloadFactory media-type="json">
<format>{&#xd;
"codigoErro":$1,&#xd;
"detalhe":$2&#xd;
}</format>
<args>
<arg evaluator="xml" expression="get-property('HTTP_SC','axis2')"/>
<arg evaluator="xml" expression="get-property('ERROR_DETAIL')"/>
</args>
</payloadFactory>
<respond/>
</faultSequence>
</resource>
</api>

所以我有两个问题:1-如何使自定义故障消息响应?2-是否可以使用故障中介将序列更改为"故障序列"?

我将把答案放在这里。这些是我学习和经历的结果:1-如何使自定义故障消息响应?这样做的方法是使用过滤中介来测试规则,并构建消息来响应您的请求。

2-是否可以使用故障中介将序列更改为"故障序列"?否。故障序列只有在发生故障时才开始执行。您不能使用中介器自行更改执行路径。

所以其他人可能比我更有经验,回答不同的信息。[],sMarcelo

最新更新