我正在尝试使用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=""Fault Way""/>
</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=""Corret Way""/>
</log>
<payloadFactory media-type="json">
<format>{
"Status":"Correct Resource"
}</format>
<args/>
</payloadFactory>
<respond/>
</else>
</filter>
</inSequence>
<outSequence/>
<faultSequence>
<log level="full" separator=";">
<property name="Caminho" value=""Entrou Fault Sequence""/>
</log>
<property description="" name="HTTP_SC" scope="axis2" type="INTEGER" value="400"/>
<payloadFactory media-type="json">
<format>{
"codigoErro":$1,
"detalhe":$2
}</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-是否可以使用故障调解器将顺序更改为“故障顺序”?
答案 0 :(得分:0)
我将答案放在这里。这些是我学习和经历的结果: 1-如何使自定义故障消息响应? 做到这一点的方法是使用筛选器中介程序测试规则并构建消息以响应您的请求。
2-是否可以使用故障调解器将顺序更改为“故障顺序”? 否。只有在发生故障时才开始执行故障序列。您不能使用调解器自己更改执行路径。
因此,其他人可能会比我回答更多的信息多。 [],s 马塞洛