如何解决如何在wso2 EI中处理HTTP状态代码404?
我在迭代器内调用2序列。但是,如果任何序列因HTTP状态代码404失败,则控制将转为故障序列,其他序列将不执行。有没有办法可以解决这个问题,我的所有序列都应该运行,并且应该执行迭代器,因为任何序列都没有问题。我编写了自定义错误处理程序序列来处理404状态代码。
基本上如何处理HTTP状态代码404响应并忽略该404代码。设置一些自定义错误消息并继续流程中的其他顺序。
谢谢, Vipin
解决方法
您可以使用axis2属性HTTP_SC和SWITCH介体来处理响应的HTTP状态。 这是一个示例API。它具有三个GET资源,一个/ exist仅返回200,/ test404模拟对不存在的Uri的调用,/ testnot404-调用/ exist URI。两种方法中的消息处理都是相同的-它们使用切换介体来处理HTTP_SC axis2属性。
<api xmlns="http://ws.apache.org/ns/synapse" name="StakeOverflow" context="/so"> <resource methods="GET" uri-template="/exist"> <inSequence> <respond/> </inSequence> </resource> <resource methods="GET" uri-template="/test404">
<inSequence>
<call>
<endpoint>
<http method="GET" uri-template="http://localhost:8280/so/notExist"/>
</endpoint>
</call>
<switch source="get-property('axis2','HTTP_SC')">
<case regex="404">
<payloadFactory media-type="json">
<format>{"result":"404"}</format>
<args/>
</payloadFactory>
</case>
<default>
<payloadFactory media-type="json">
<format>{"result":"not 404"}</format>
<args/>
</payloadFactory>
</default>
</switch>
<property name="HTTP_SC" value="200" scope="axis2" type="STRING"/>
<respond/>
</inSequence> </resource>
<resource methods="GET" uri-template="/testnot404">
<inSequence>
<call>
<endpoint>
<http method="GET" uri-template="http://localhost:8280/so/exist"/>
</endpoint>
</call>
<switch source="get-property('axis2','HTTP_SC')">
<case regex="404">
<payloadFactory media-type="json">
<format>{"result":"404"}</format>
<args/>
</payloadFactory>
</case>
<default>
<payloadFactory media-type="json">
<format>{"result":"not 404"}</format>
<args/>
</payloadFactory>
</default>
</switch>
<property name="HTTP_SC" value="200" scope="axis2" type="STRING"/>
<respond/>
</inSequence> </resource> </api>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。