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

WSO2 EI 6.6.0 JSONTransformMediator Schema验证报错咨询

问题根因

WSO2 EI 6.6.0内置的JSON Schema验证模块基于旧的Draft 04规范实现,且存在已知的解析逻辑BUG,和新版Micro Integrator使用的高版本兼容验证器逻辑不同,因此会出现同一份schema跨环境验证结果不一致的问题。你提交的schema存在两处不符合旧版本验证器要求的写法:

  • type字段使用数组形式声明多类型兼容(如"type": ["null","object"]):WSO2 EI 6.6.0的JSONTransformMediator在解析该写法时,若对应字段下嵌套了array类型的子节点,会错误将整个schema判定为false,触发JSON schema is false报错
  • items字段使用数组包裹验证规则:该写法用于元组验证场景,仅当你需要对数组不同位置的元素做不同规则校验时使用,旧版验证器对该写法的兼容性极差,普通的全数组元素同规则校验无需包裹数组

解决方案

按以下规则修改schema即可兼容WSO2 EI 6.6.0环境:

  1. 将所有"type": ["null", "目标类型"]的写法,替换为Draft 04兼容的oneOf组合规则:
// 原写法
"type": ["null", "object"]
// 替换后写法
"oneOf": [
  {"type": "null"},
  {"type": "object"}
]
  1. 普通数组同规则校验场景下,去掉items外层的数组包裹:
// 原写法
"items": [{"type": "object"}]
// 替换后写法
"items": {"type": "object"}
  1. 显式指定schema使用Draft 04规范,避免解析器版本识别异常:在schema根节点添加"$schema": "http://json-schema.org/draft-04/schema#"

修改后示例(简化版schema)

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "result": {
      "oneOf": [
        {"type": "null"},
        {
          "type": "object",
          "properties": {
            "uos": {
              "type": "array",
              "items": {"type": "object"}
            }
          }
        }
      ]
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:15:02