一直用的都是myeclipse的webservice,也就是xfire,这样就造成了soap这块的认识的狭隘。
最近看的soap和wsdl很是混淆。
所以仔细的用了一下myeclipse的webserver的浏览器,swdl是一种描述服务的定义语言,而soap则是协议,基于soap的webserver都是用soap协议来联系的。
一个wsdl信息中包含的是一个webserver提供给客户的接口的描述,比如你如果创建了一个服务,然后在webserver的浏览器中输入:
http://localhost:8080/test/test?wsdl那么就可以得到一个xml文件,仔细看一下里面都是你见的那个接口的一些描述,当然这个xml是按照一定的规则编写的,这里就不深入些了,然后就是这个soap消息,soap消息是用来客户端和服务端进行通信的协议,就像我们的http协议,客户端根据之前得到的接口,然后调用里面 的方法 这个过程其实是和服务端的一个联系,这个联系都是通过soap来实现的,这样我们就分清楚了soap和wsdl的区别和联系。
补充:在myeclipse中我们可以创建一个webserver项目,然后创建webserver,其实这个webserver包含一个接口和这个接口的实现类, 最后我们还可以通过一个wsdl的url创建一个client,因为一个wsdl的url就是用来描述这个服务的,也就是说我们也是可以通过这个wsdl来实现接口的获取。
到此我们基本上就可以用网络上的一些天气预报的一些webserver了,不过我试着将http://www.ayandy.com/service.asmx?WSDL的wsdl描述转换成一个接口的时候会出错 ,可能就是现在网络上的一些wsdl并没有严格的按照这个标准吧。。