微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在wso2 EI中处理HTTP状态代码404?

如何解决如何在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 举报,一经查实,本站将立刻删除。