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

WSO2 EI 6.5.0租户名称验证错误返回SOAP,如何转为JSON?

WSO2 EI租户无效时返回JSON错误的配置方案及错误来源说明

错误来源组件

该错误由**WSO2 Enterprise Integrator的租户管理组件(Tenant Management Component)**返回。在租户上下文初始化阶段,系统无法识别传入的租户域名时,底层租户验证逻辑默认输出SOAP格式的错误响应,这是组件原生的错误输出规则导致的。

配置返回JSON格式错误的步骤

1. 调整Axis2的消息处理器优先级

找到EI安装目录下的repository/conf/axis2/axis2.xml,修改messageFormatter和messageBuilder配置段,确保JSON处理器优先级高于SOAP处理器:

  • 确认并调整messageFormatter配置位置到段首:
    <messageFormatter contentType="application/json"
                     class="org.apache.axis2.json.JSONMessageFormatter"/>
    
  • 确认并调整messageBuilder配置位置到段首:
    <messageBuilder contentType="application/json"
                   class="org.apache.axis2.json.JSONOMBuilder"/>
    

2. 添加JSON错误转换拦截器

在axis2.xml的fault阶段添加自定义拦截器,强制将SOAP错误转为JSON格式:

<phase name="fault">
    <handler name="JSONFaultHandler"
             class="org.apache.synapse.handlers.json.JSONFaultHandler">
        <order phase="fault"/>
    </handler>
</phase>

该拦截器会在错误响应阶段自动匹配请求的Accept头,将SOAP格式错误转换为JSON格式。

3. 修改租户管理组件的错误输出格式

打开repository/conf/tenant-mgt.xml,在TenantManager配置中添加errorResponseFormat属性:

<TenantManager class="org.wso2.carbon.tenant.core.TenantManagerImpl">
    <Property name="errorResponseFormat">json</Property>
</TenantManager>

此配置会让租户管理组件直接输出JSON格式的错误响应,从根源改变错误输出规则。

4. 重启WSO2 EI服务

所有配置修改完成后,必须重启EI服务才能使配置生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 12:11:02