加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

NET WebService客户端与Axis(Java WebSerivce)服务端的互操作问

发布时间:2020-12-17 02:58:41 所属栏目:安全 来源:网络整理
导读:用Java Axis作Web Service的提供者,客户端用C#。 调用一切顺利,就是得不到返回值。返回值是bool型,但得到的总是false. 用Axis的Tcpmon监视soap消息,并无不妥,故判断是客户端在解析Soap响应的时候有问题。 后来尝试用MS Soap SDK里面的Soap Trace Utili

用Java Axis作Web Service的提供者,客户端用C#。

调用一切顺利,就是得不到返回值。返回值是bool型,但得到的总是false. 用Axis的Tcpmon监视soap消息,并无不妥,故判断是客户端在解析Soap响应的时候有问题。

后来尝试用MS Soap SDK里面的Soap Trace Utility监视Soap消息,发现无法显示soap消息:

The XML page cannot be displayed

Cannot view XML input using style sheet. Please correct the error and then click the Refresh button,or try again later.


Invalid at the top level of the document. Error processing resource 'file:///C:/Documents and Settings/zzephyr/Local Settings/Temp/MSSOAPT.0/M69.xml'. Line 1,Position 1

1a7
^
用“View Source”发现开头多了”1a7”:
1a7
怀疑是Axis有问题,多输出了奇怪的字符。后来发现,并非Axis的问题。那个1a7是消息长度,是Chunk Encoding的表示。
是Trace Utility不能正确解释Chunk encoding.
抛开trace utility不管,问题还是出在.NET客户端。客户端的代码是根据wsdl文件自动生成的。
原来MS默认的Soap响应的Xml元素是
  
  
   
   Result,而Axis默认是
   
   
     Response. 
   
把SoapDocumentMethodAttribute里面的ResponseElementName改成
  
  
   
   Response的格式就一切OK了
  
  
我查了一下w3c的规范,好像并没有规定返回元素的命名规范。谁都没错,浪费的是Developer的时间!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读