Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我向web服务发送消息时,如何捕获wso2esb中的错误?_Wso2_Try Catch_Wso2esb_Send - Fatal编程技术网

当我向web服务发送消息时,如何捕获wso2esb中的错误?

当我向web服务发送消息时,如何捕获wso2esb中的错误?,wso2,try-catch,wso2esb,send,Wso2,Try Catch,Wso2esb,Send,我有REST服务,它返回错误HTTP500(特别是)。故障序列未捕获此错误。如何捕捉这个错误?谢谢 我的配置: <?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse" name="d" transports="https,http" statistics="disable" trace="disable"

我有REST服务,它返回错误HTTP500(特别是)。故障序列未捕获此错误。如何捕捉这个错误?谢谢

我的配置:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="d"
       transports="https,http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <property name="FORCE_ERROR_ON_SOAP_FAULT" value="true"/>
         <send>
            <endpoint>
               <address uri="http://localhost:8080/rest/ris/b"/>
            </endpoint>
         </send>
         <log level="full"/>
      </inSequence>
      <outSequence>
         <send/>
         <property name="FORCE_ERROR_ON_SOAP_FAULT" value="true"/>
         <log level="full"/>
      </outSequence>
      <faultSequence>
         <log level="full">
            <property name="MSG" value="==== FAULT CREATED ==="/>
         </log>
         <send/>
      </faultSequence>
   </target>
   <description/>
</proxy>

接下来,当您收到来自REST服务的响应时,您可以使用swith或filter mediator测试HTTP状态代码,示例:

<filter source="$axis2:HTTP_SC" regex="500">
   <then>
      ...
   </then>
   <else>
      ...
   </else>
</filter>

...
...

接下来,当您收到来自REST服务的响应时,您可以使用swith或filter mediator测试HTTP状态代码,示例:

<filter source="$axis2:HTTP_SC" regex="500">
   <then>
      ...
   </then>
   <else>
      ...
   </else>
</filter>

...
...

作为一种解决方法,而不是使用
使用
jira中记录了一个错误:

https://wso2.org/jira/browse/ESBJAVA-3386 

有关更多说明,请参阅票据本身中随附的
FORCE\u ERROR\u ON\u SOAP\u FAULT.xml
文件作为解决方法,而不是使用
使用
jira中记录了一个错误:

https://wso2.org/jira/browse/ESBJAVA-3386 

在与团队讨论后,请参阅票据本身中随附的
FORCE\u ERROR\u ON\u SOAP\u FAULT.xml
文件,以了解更多说明

:当您尚未为代理定义故障序列时,它将不会调用默认故障序列。这不是一个bug,而是ESB产品的预期行为。因此,该缺陷已转化为改进。因此,改进后的行为是,如果代理配置中未指定feaultSequence,则默认故障序列将被视为代理的故障序列。另外,请注意,这不是强制对\u SOAP\u FAULT属性本身执行\u ERROR\u的特定操作。与团队讨论后:当您尚未为代理定义故障序列时,它将不会调用默认故障序列。这不是一个bug,而是ESB产品的预期行为。因此,该缺陷已转化为改进。因此,改进后的行为是,如果代理配置中未指定feaultSequence,则默认故障序列将被视为代理的故障序列。另外请注意,这并不是强制对\u SOAP\u FAULT属性本身执行\u ERROR\u的特定操作。