You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 API配置outSequence修改返回报文后返回202无响应体求助

问题根因

返回202无响应体由配置中的3处错误导致:

  • 配置嵌套了key为空的<sequence>标签,WSO2无法匹配到对应执行序列,导致响应处理逻辑中断,默认返回202 Accepted状态码且无响应内容
  • 当前在处理正常响应的outSequence中调用了ERROR_CODE、ERROR_MESSAGE等仅在错误处理序列faultSequence中才会被填充的属性,正常请求下这些属性为空,会导致payload生成异常
  • 未显式指定响应的HTTP状态码,处理逻辑异常时WSO2默认返回202状态码

修正方案

场景1:自定义错误请求的返回内容

把对应逻辑迁移到faultSequence,修正后的配置如下:

<faultSequence>
    <payloadFactory media-type="json">
        <format>
            {
                "status": "1",
                "message": $1
            }
        </format>
        <args>
            <arg evaluator="xml" expression="get-property('ERROR_MESSAGE')"/>
        </args>
    </payloadFactory>
    <property name="messageType" scope="axis2" type="STRING" value="application/json"/>
    <property name="HTTP_SC" scope="axis2" type="STRING" value="200"/>
    <send/>
</faultSequence>

场景2:修改正常成功请求的返回内容

按实际原响应的结构调整取值逻辑,示例如下(假设原响应json中包含msg字段):

<outSequence>
    <payloadFactory media-type="json">
        <format>
            {
                "status": "1",
                "message": $1
            }
        </format>
        <args>
            <arg evaluator="json" expression="$.msg"/>
        </args>
    </payloadFactory>
    <property name="messageType" scope="axis2" type="STRING" value="application/json"/>
    <property name="HTTP_SC" scope="axis2" type="STRING" value="200"/>
    <send/>
</outSequence>

验证步骤

  • 配置修改完成后重新部署API生效
  • 调用接口确认返回状态码和响应体符合预期,若仍有异常可开启WSO2序列执行日志,排查属性取值是否符合预期

内容的提问来源于stack exchange,提问作者Pietro Ricciardi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:45:07