Wso2故障序列错误处理标头

时间:2018-11-27 09:09:07

标签: wso2 wso2ei synapse

我目前正在开发一个API,该API将向端点发送请求,并将响应返回给客户端。

在我的故障序列中,我将使用makefault介体记录错误代码和错误消息。关于错误代码和消息记录的一切工作正常。仅仅是这样,每个错误的HTTP标头都返回500(内部服务器错误)。

这是我的故障序列的样子。

<faultSequence>
<makefault description="" version="soap11">
    <code value="soap11Env:VersionMismatch" xmlns:soap11Env="http://schemas.xmlsoap.org/soap/envelope/"/>
    <reason expression="get-property('ERROR_CODE')"/>
    <role/>
    <detail/>
</makefault>

<log level="custom">
    <property expression="get-property('HTTP_SC')" name="header"/>
</log>

<header name="To" action="remove"/>
<property name="RESPONSE" value="true"/>

我尝试在消息上下文中捕获HTTP代码。值为空

LogMediator header = null

但是当响应发送回客户端时,它返回的HTTP为500(内部服务器错误)

enter image description here

任何建议都会对您有所帮助。请协助。谢谢StackOverFlow。

1 个答案:

答案 0 :(得分:1)

HTTP_SC属性属于axis2范围。因此,您可以使用以下任一方式记录状态代码

<log level="custom">
    <property expression="get-property('axis2','HTTP_SC')" name="header"/>
</log>

<log level="custom">
    <property expression="$axis2:HTTP_SC" name="header"/>
</log>