一、简单介绍webservice
1、什么是webservice
从表面上看,WebService就是一个应用程序向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过Web来调用这个应用程序。我们把调用这个WebService的应用程序叫做客户端,而把提供这个WebService的应用程序叫做服务端。从深层次看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何在Web上实现互操作性,你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。
XML+XSD,SOAP和WSDL就是构成WebService平台的三大技术。
a.XML解决了数据表示的问题
b.XML Schema(XSD)定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。
c.SOAP协议 = HTTP协议 + XML数据格式,形象比喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。
d.WSDL(Web Services Description Language)就是一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。
2、Webservice运用在哪些场合
a跨防火墙通信:
b应用程序集成
c B2B集成
d 软件和数据重用
二、webservice快速搭建
Java方面的典型WebService框架包括:axis,xfire,cxf等
1.服务端
a.暴露供客户端调用的接口和方法:(这里采用的是JAX-WS 注解
)
@WebService:申明为webservice的注解,这样cxf就知道这是个webservice了
endpointInterface:要暴露的接口类
serviceName : 服务名,其实就是调用地址
b.发布地址
Endpoint.publish(地址,暴露给客户端类的实例);
2.客户端
A.设置服务地址
B.设置服务接口
C.设置服务连接属性
· ConnectionTimeout - WebService以TCP连接为基础,这个属性可以理解为TCP握手时的时间设置,超过设置的时间就认为是连接超时.以毫秒为单位,默认是30000毫秒,即30秒。
· ReceiveTimeout - 这个属性是发送WebService的请求后等待响应的时间,超过设置的时长就认为是响应超时.以毫秒为单位,默认是60000毫秒,即60秒.
·
D.调用接口方法