webservice是一种远程调用技术,还有RMI,Remote method invoke,CORBA,;webservice是替代它们的技术,因为webservice是跨平台和跨编程语言的远程调用技术。做webservice包括两个方面,一个方面是把自己的业务方法发布成webservice服务,让远程合作单位和个人可以来调用;另一个方面是调用人家发布的webservice服务,大多数人是在做后者方面的开发,例如:问天网发布天气预报的wevbservice服务,我们都可以远程。
发布服务,使用的是一些webservice框架,例如:axis,xfire,cxf。这些框架的细节看看手册都很简单,一下就可以搞定helloworld,这些框架的本质就是一个大大的servlet,当远程调用客户端给它通过http发送过来soap格式的请求数据时,它分析这个说不局,就知道要调用哪个java类的哪个方法,于是去查找或创建这个对象,并调用其方法,再把方法返回的结果包装成soap格式的数据,通过http响应消息回给客户端。
客户端要调用一个webservice,首先要有知道这个服务的地址在哪,以及这个服务有什么方法可以调用。webservice通过一个wsdl文件来说明自己家里有啥服务可以用,以及这个服务时什么,这个服务在哪个url地址,通过什么方式来调用,即what,where ,how@这个文件本身又是存在web服务器,通过一个url地址就可以访问和获取到这个wsdl文件。如果我们调用人家的webservice,我们只需要做一件事,知道人家的wsdl文件的url地址即可。一些java厂商提供了client API供我们调用,我们给这个api传递wsdl文件的url地址。