服务器未能识别 HTTP 标头 SOAPAction 的值

Wayne posted @ Thu, 04 Nov 2010 13:39:43 +0000 in Experience , 13080 readers

前几天跟金华方面做一个WebService接口,对方是.NET的,我是Java的,用cxf从wsdl中生成代码,然后直接调用.非常顺利.

因为开始的是个测试用的接口,于是昨天那边换了个正式的地址,据对方本人说,他只是把一模一样的程序换了个地方部署罢了.然而我拿到wsdl然后生成了新的接口Java文件后,就死活不成了,一直报错:服务器未能识别HTTP标头SOAPAction的值:XXXXXX

在网上查了下,大多说这是Java作为客户端连接.NET的服务端时出的问题,然后给出了两种方法.一种是.NET上加一个一句话,一个是Java这边加一起.我折腾了很久,两边都加上试了试,发现均不起作用.

今天接着搞这个问题.在修改了多次代码后,出的错误终于开始显现出区别.最后,在一条报错日志中我找到了我设定的CXF在Spring中的配置文件.打开一看,恍然大悟.

 

<jaxws:client 
id="clientSoap" 
address="http://XXXXXXX" 
serviceClass="xxxxxx.ws.CDMASMSSoap"/>
 
这个位置的address值,我用的依然是之前那个测试接口的,并没有改过来! 当我改成现在用的地址后,马上就正常了.
 
看来引起"服务器未能识别HTTP标头的SOAPAction的值"这个错误的可能原因还得加一个:地址配错.

Login *


loading captcha image...
(type the code from the image)
or Ctrl+Enter