CXF默认采用JAXB作为数据绑定方式, 从wsdl生成的客户端代码发送xml请求时,没有将xml命名空间写到soap head中,导致spring ws解析xml报错,需要在cxf客户端添加如下代码
或者采用其他数据绑定方式
Client client = ClientProxy.getClient(port);
client.getOutInterceptors();
HashMap<String, String> hmap = new HashMap<String, String>();
hmap.put("sch", "http://your/schemas");
client.getRequestContext().put("soap.env.ns.map", hmap);
client.getRequestContext().put("disable.outputstream.optimization", "true");
或者采用其他数据绑定方式
本文介绍了解决CXF客户端生成的SOAP请求缺少命名空间的问题。通过在客户端代码中添加特定配置,确保SOAP头部正确包含所需的命名空间声明,从而避免Spring WS在解析XML时出现错误。
4万+

被折叠的 条评论
为什么被折叠?



