【问题标题】:Wso2 Fault Sequence Error Handling HeaderWso2 故障序列错误处理标头
【发布时间】:2019-04-28 23:36:19
【问题描述】:

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

在我的故障序列中,我将使用 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(内部服务器错误)

任何建议都会在这里有所帮助。请协助。谢谢 StackOverFlow。

【问题讨论】:

  • 不确定,但我想这可能与范围有关。你可以试试 org.apache.synapse/xsd" name="Status" expression="$axis2:HTTP_SC"/> 或 get-property('axis2', 'HTTP_SC') 或 get-property('transport' , 'HTTP_SC') 看看它是否有效

标签: wso2 wso2ei synapse


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    相关资源
    最近更新 更多