WSO2 EI 6.6.0空SOAP响应转换为空JSON报错如何解决?
解决方案
该问题的核心原因是WSO2 EI的JSON格式化组件无法将无任何子节点的空SOAP Body转换为合法JSON结构,而NO_ENTITY_BODY参数的作用是直接丢弃响应体,因此不会返回任何内容。你需要在检测到空SOAP Body时,主动构造空JSON对象载荷替换原空内容即可解决问题。
修改后的配置如下:
<log level="full" xmlns="http://ws.apache.org/ns/synapse"/> <switch source="//soapenv:Body/*[1]" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <case regex=""> <!-- 检测到空SOAP Body时主动构造空JSON对象 --> <payloadFactory media-type="json"> <format>{}</format> <args/> </payloadFactory> </case> <default/> </switch> <property name="messageType" value="application/json" scope="axis2"/> <respond/>
配置说明:
- 移除原
NO_ENTITY_BODY相关配置,改用payloadFactorymediator直接生成空JSON对象作为响应载荷,避免空内容转换报错 - 非空SOAP Body的场景会走default分支,保持原有转换逻辑不变,不会影响正常响应的处理
内容的提问来源于stack exchange,提问作者Mewster
相关产品推荐
相关产品推荐

