调用SOAP服务报WSProxy: nested fault 命名空间前缀bo未定义问题求助
问题原因
报错核心提示 Namespace prefix bo on concnt is not defined,本质是SOAP信封根节点声明的命名空间前缀和实际使用的前缀不匹配:
- 根节点
<soapenv:Envelope>中你把业务接口的命名空间URIhttp://external_svc.org/F6/wallet/bo绑定到了srt前缀,声明语句为xmlns:srt="http://external_svc.org/F6/wallet/bo" - 但
<soapenv:Body>内的所有业务标签统一使用bo:作为前缀,XML解析器找不到bo前缀对应的命名空间定义,因此抛出解析错误。
修复方案
两种方案二选一即可:
- 修改根节点的命名空间声明,把前缀从
srt改为bo:
把根节点的命名空间声明改成xmlns:bo="http://external_svc.org/F6/wallet/bo",和你Body里用的前缀保持一致。 - 不修改命名空间声明,把Body里所有的
bo:前缀统一替换为srt::
比如把<bo:acquistoMerchant_xmlin>改成<srt:acquistoMerchant_xmlin>,所有带bo:的标签都同步修改即可。
额外注意
Header里的<srtoken>标签目前没有加命名空间前缀,建议确认该标签是否属于公共无命名空间标签,若属于业务接口定义的标签,也需要补充对应前缀避免后续调用报错。
内容的提问来源于stack exchange,提问作者LuKe Lukes
相关产品推荐
相关产品推荐

