WebService是什么?
1. 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据)
2. 一个跨语言、跨平台的规范(抽象)
3. 多个跨平台、跨语言的应用间通信整合的方案(实际)
以各个网站显示天气预报功能为例:
气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server), 而各大站点的应用就去调用它们得到天气信息并以不同的样式去展示(WebService Client)。网站提供了天气预报的服务,但其实它们什么也没有做,只是简单了调用了一下气象中心服务器上的一个服务接口而已。
4. WebService的优点:能够解决跨平台,跨语言,以及远程调用之间的问题。
5. WebService的应用场合
a. 同一家公司的新旧应用之间
b. 不同公司的应用之间,例如电商和物流之间的应用相互调用
c. 一些提供数据的内容聚合应用:天气预报、股票行情
WebService预备知识
几个重要术语
1.WSDL/web service definition language
webservice定义语言, 对应.wsdl文档, 一个webservice会对应一个唯一的wsdl文档, 定义了客户端与服务端发送请求和响应的数据格式和过程。
2.SOAP/simple object access protocal
一种简单的、基于HTTP和XML的协议, 用于在WEB上交换结构化的数据,在webservice中分为请求消息和响应消息。
3.SEI/WebService EndPoint Interface
webService服务器端用来处理请求的接口
4.CXF/Celtix + XFire
一个apache的用于开发webservice服务器端和客户端的框架
WebService开发
开发方式:
1. 使用JDK开发(JDK6及以上版本)
2. 使用apache CXF开发(工作中)
组成:
1. 服务端开发
2. 客户端开发
一. 使用JDK开发webservice
服务端:
/** * SEI * @author byron */ @WebService public interface HelloWs { @WebMethod public String sayHello(String name); } /** * SEI的实现 * @author byron */ @WebService public class HelloWsImpl implements HelloWs { @WebMethod public String sayHello(String name) { System.out.println("sayHello " + name); return "hello " + name; } } /** * 发布webservice * @author byron */ public class WsPublish { public static void main(String[] args) { Endpoint.publish("http://192.168.1.106:8989/ws/hello", new HelloWsImpl()); System.out.println("发布Webservice 服务成功!"); } }