Wso2 EI 7.1.0 JSON转SOAP响应缺失soapenv:Envelope标签求助
WSO2 EI 7.1.0 响应缺失SOAP外层标签解决方案
问题根因
该问题是由于JSON转XML后的响应没有指定SOAP消息格式,EI默认将其作为普通XML返回,不会自动封装SOAP信封标签。
解决方案
- 第一步:在完成JSON转XML的逻辑之后、响应返回给客户端之前,添加属性中介器,指定axis2域下的messageType属性:
如果使用SOAP 1.1版本,配置如下:
如果使用SOAP 1.2版本,配置如下:<property name="messageType" value="text/xml" scope="axis2"/>
该配置会触发EI调用对应SOAP消息格式化器,自动为当前XML payload封装SOAP Envelope和Body外层标签。<property name="messageType" value="application/soap+xml" scope="axis2"/> - 第二步:若配置后仍未生效,检查当前序列中是否存在
DISABLE_SOAP_ENVELOPE属性设为true的配置,如有则删除该配置,或将值修改为false:<property name="DISABLE_SOAP_ENVELOPE" value="false" scope="axis2"/> - 第三步:如果有自定义消息格式化器调整,检查
<EI_HOME>/conf/deployment.toml中对应messageType的格式化器配置,SOAP 1.1默认格式化器为org.apache.axis2.transport.http.SOAPMessageFormatter,无特殊需求保持默认即可。
配置完成后即可得到带完整SOAP外层标签的响应,符合预期输出格式。
内容的提问来源于stack exchange,提问作者Ajay
相关产品推荐
相关产品推荐

