我已经从wsdl在netbeans 7.2中创建了一个java客户端 问题是标头发送Soapaction但服务器期望接收SOAPAction
我尝试使用此代码覆盖属性
BindingProvider prov = (BindingProvider)port;
prov.getRequestContext().put(BindingProvider.SOAPACTION_USE_PROPERTY, false);
prov.getRequestContext().put(BindingProvider.SOAPACTION_URI_PROPERTY, "http://www.microsoft.com");
但是在服务器中它再次接收Soapaction而不是接收SOAPAction
有人可以告诉我,我怎么能忽视这个价值呢?
谢谢
答案 0 :(得分:0)
我认为您尝试将其添加到错误的位置。
BindingProvider只是存根对象,"提供对协议绑定和相关上下文对象的访问,以便进行请求和响应消息处理。"
您真正需要的是SOAP消息拦截器,您可以使用它来自定义WS库生成的SOAP消息。
如果您使用JAX-WS,您可以使用例如SOAPHandlers来执行此操作。
这是一个例子: http://www.mkyong.com/webservices/jax-ws/jax-ws-soap-handler-in-client-side/
如果不是这种情况,请提供有关您的应用程序的更多详细信息(它是什么类型的项目,您正在使用哪种WS实现等)。