Unexpected wrapper element{urn:XXX}XXX found Expected{http://ss/}XXX CXF解决办法
近日在做一个与医保系统对接的项目,对方给了一个客户端给我,需要来调用我的服务端。
我的服务端用的是springboot框架 sqlserver2000 及 CXF做的webservice接口。在用客户端进行调试时就报出相应错误。
Unexpected wrapper element{urn:YBServiceIntf-IYBService}GetMemberInfo found Expected{http://cn.lbx.com/}GetMemberInfo
错误截图如下:
经过分析:
1、医保的客户端是统一的,也就是说一个客户端支持多家服务端。正常情况都是我们开发好了服务端他生成客户代码再进行调用,正好相反,我们需要根据它客户端的要求来开发服务端,只能我们改。(这个是解决问题的重点思路)
2、对比医保测试服务自己的服务端实例,比对他们的wsdl文件;
targetNamespace是你的代码路径,想办法改成一致,需要整体修改。(有差异的地方都修改)
3、发现他的wsdl文件中有个节点 style="rpc" 而我本地是style="document"
发现不一样立即修改,在接口上添加 @SOAPBinding(style = Style.RPC)
按照上面的分析,你可以先做第三步,如果成功了那你就不需要修改代码包路径了。