一对应用,A使用Java开发,B使用.NET开发;现要求B应用开发一个.NET WebService接口,将此接口URL登记到A应用中,当有消息产生时,A应用通过此接口向B应用报告。
WebService开发出来后联调发现,即使有消息产生,B应用接口也未能拿到任何数据,查看IIS日志却发现A应用是有在调用接口的。由于A系统已经是一个产品化的应用,所以只能是调整B应用去适应它。
首先抓包,发现接口调用IIS直接报告HTTP 500错误
客户端的soap请求中userIdType变成了这种格式:<userIdType href="#id1"/>,服务端的userIdType变量值要从其后的id为id1的<multiRef>1<multiRef>中取到,但是由于请求端不能修改,我不知道该如何修改.net web service来适应客户端。请各位帮忙。分不够再加也不知道你是怎么请求webservice的,简单的东西被你搞复杂了,
访问webservice最简单的方法就是url get方式了,你发送一个url请求也会 格式错误?
就以你说的天气预报为例,先定义好天气信息的可序列化的类(或者用Map结构表示也行),然后定义好一个获取天气情况的方法,这方法可以在本地调用,也可以直接将其发布为服务让其他语言直接调用。
关于如何发布这样的可以跨语言跨平台的服务在这里有一个其.NET版本的视频教程
web service是为了跨平台,因此要仅仅实现最基本的、最傻瓜的协议,而不要轻易使用复杂的机制。
在更早,网站之间通信实际上只要访问网页并post数据就够了,在文档中把消息协议制定好,由双方各自解析。
使用web service的好处是客户端可以通过wsdl来自动发现服务,比如互联网上发布10000个web service,不会搞出几千种所谓的私有协议出来!先有服务而后快速开发客户端,并且客户端可以自动适应服务端升级的情况。
但是你的情况,作为客户端竟然说“已经是一个产品化的应用”,这就比较难办了。因为vs中提供的工具只是帮助你去编译wsdl,当初可没有想到以那个次序来开发web service服务! |
解决办法如下: 来源:足球直播 |