WSO2 API Manager报601000错误无法识别application/fhir+json配置方法
错误根因
code:601000、Error while building Passthrough stream报错触发原因:WSO2 API Manager默认Axis2消息处理组件未注册application/fhir+json类型的构建器、格式化器映射,网关收到该Content-Type的响应时,无法匹配对应处理器完成消息流构建,直接抛出运行时错误。
配置操作步骤
定位配置文件
进入WSO2 APIM安装目录,找到Axis2核心配置文件,路径为:<APIM_HOME>/repository/conf/axis2/axis2.xml集群部署场景下,所有网关节点、控制平面节点都需要修改该配置,避免节点间转发时出现同类错误。
添加消息构建器配置
在axis2.xml中找到<messageBuilders>配置块,在块内新增如下配置:<messageBuilder contentType="application/fhir+json" class="org.apache.synapse.commons.json.JsonStreamBuilder"/>该配置指定
application/fhir+json类型使用JSON流构建器处理,完全兼容FHIR JSON结构,不会修改原始消息内容。添加消息格式化器配置
在同个axis2.xml文件中找到<messageFormatters>配置块,在块内新增如下配置:<messageFormatter contentType="application/fhir+json" class="org.apache.synapse.commons.json.JsonStreamFormatter"/>如果你之前自定义过JSON消息处理类,将上述配置中的class值替换为你环境中实际使用的JSON构建/格式化实现类即可,配置逻辑一致。
重启服务生效
保存配置文件后,完全重启对应WSO2 APIM节点,不要使用热部署加载配置,避免配置不生效。
验证方式
服务重启后重新触发之前报错的请求,接口将正常返回application/fhir+json格式的响应,不再抛出601000运行时错误。如果配置了消息中介逻辑,也可以正常读取、修改该类型的消息体。
内容的提问来源于stack exchange,提问作者rajwinder

