购买服务 会员注册 会员登录
  设为首页 加入收藏 联系我们
Welcome to WebXml.com.cn
Web Services 网站建设 域名交易 服务支持 下载中心 信息资讯 联系我们 返回首页
 
服务支持 - Web Services

Java调用.Net WebService 发生异常:服务器未能识别 HTTP 头 SOAPAction 的值

www.WebXml.com.cn 发表日期:2009年02月27日 23:53 星期五
 

 

使用XFire方式调用这个Web服务,但出现了异常:SoapException: 服务器未能识别 HTTP 头 SOAPAction 的值。

这可能是 Client 端没有正确的按照 WSDL 建立反项工程的原因。

我们的WSDL地址是:WEB服务地址+?wsdl ,如:http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx?wsdl

SOAPAction 这个字段的设置规则也在 WSDL 里可以找到,你在 WSDL 里找一下:<soap:operation soapAction=

dot net 的默认soapaction 是和发布的Namespace/方法名,如上面的WSDL:<soap:operation soapAction="http://WebXml.com.cn/getVersionTime" style="document" />

而java写的部分代码产生的soapaction=""

一般可以尝试在http header里将SOAPAction 设置为.NET 的 WEB服务的Namespace :http://WebXml.com.cn。如果找不到,尝试着在http header里将SOAPAction 设置为""(空),但一定要设置,如果你用的是 XFire 理论上是不用设置,可能是你的 Client 端没有正确的按照 WSDL 建立反项工程的原因,不过 XFire 应该也可以手动设置: Client.setProperty("SOAPAction","");



另外,.net 的 webservice 指定了namespace,我们的服务Namespace是:http://WebXml.com.cn/,但是java调用时没有指定,如果我们仔细查看.net webservice 的soap 请求格式时会发现,下面是一个 SOAP 请求和响应示例(部分代码)要求的格式是:


......
<soap:Body>
<getDetailInfoByTrainCode xmlns="http://WebXml.com.cn/">
<TrainCode>string</TrainCode>
<UserID>string</UserID>
</getDetailInfoByTrainCode>
</soap:Body>
......


//JAVA 调用原来代码:

......
try{
Service service = new Service();
Call call = (Call) service.createCall();
call.setOperationName(new QName("", "getDetailInfoByTrainCode"));
call.addParameter("TrainCode", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("UserID", XMLType.XSD_STRING, ParameterMode.IN);
call.setTargetEndpointAddress(new URL(
"http://www.webxml.com.cn/WebServices/TrainTimeWebService.asmx"));
......
}


//JAVA 代码修改成以下代码:

call.setOperationName(new QName("http://WebXml.com.cn/", "GetTestQuestions"));





其他参考相关链接:
Soap action is empty

 
 
 
关闭本窗口
 
请就此篇文章提供反馈:
很有帮助 没有帮助
9 8 7 6 5 4 3 2 1  
   
 
发表评论:
   
< 300中文字或< 600英文字符
 
WebXml.com.cn 声明:
  WebXml.com.cn 和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性(不包括在单独的书面协议项下 WebXml.com.cn 向您提供的任何服务),不作任何声明。所有该等文件及有关图形均 " 依样 " 提供,而不带任何性质的保证。也许这些文件已经过期,且 WebXml.com.cn 不承诺更新它们。WebXml.com.cn 和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于使用、销售、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,WebXml.com.cn 和/或其各供应商就任何问题而造成的损失不负任何责任。
 
 
 
WEB 服务 网站建设 域名交易 服务支持 下载中心 信息资讯 联系我们 首 页
版权所有 © 2006 - 2021 上海思集信息科技有限公司 保留所有权利        本站声明 Search powered by Google
Powered Asp.net 2.0