什么是WebService?
一种基于Web的服务,服务端提供一些资源让客户端进行访问,获取一些公共的数据。比如天气预报,股票信息,手机归属地查询等等。
WebService是一种跨平台,跨语言的规范。
气象局负责将收集的每天的天气信息,并将这些信息暴露出来,各大站点的应用去调用网络接口得到当天或者未来几天的天气情况,然后以不同形式展示出来。
网站提供了天气预报的信息,其实网站本身什么都没有做,只是调用了一下远程接口。这个就是WebService的典型应用。
WebService组织图
Web服务的几个重要术语:
WSDL(Web Services Description Language):Web服务描述语言。一个XML文档,WSDL定义了Web Service 的名称、处理服务的方法、请求的参数及返回的数据格式。一个WebService对应唯一一个wsdl文档。
SOAP(Simple Object Access Protocol):简单对象传输协议。一个基于HTTP和XML的协议,用于在Web上的应用程序交换结构化的数据。
SEI(WebService Endpoint Interface):WebService服务端用来处理请求的接口。
CXF(Celtix + XFire):一个Apache的用于开发webService服务器和客户端框架。
WSDL的基本结构:
Types元素
数据类型定义的容器
Message元素
通信消息的数据结构的抽象类型定义
PorType元素
可以描述一个Web Service可被执行的操作以及相关的消息
Binding元素
特定端口类型的具体协议和数据格式规范的绑定
Service元素
相关服务访问点的集合
SOAP概述:
SOAP(SImple Object Access Protocol,简称对象访问协议)基于XML的,用于在分布式环境下交换信息的轻量级协议。
SOAP 1.2规范与2003年6月24日被发布为W3C推荐标准
SOAP的优点
与厂商无关
相对于平台独立
相对与操作系统独立
相对与编程语言独立
开发WebService:
WebService组成
服务器端:提供WebService的服务器端。(Java开发)
客户端:调用远程WebServiec的客户端应用程序。可以在任何系统下使用任何语言调用。
开发WebService分为两种方式
JAX-WS方式:Web标准服务
CXF方式:基于CXF框架开发
JAX-WS方式开发WebService:
开发步骤:
创建一个JavaProject项目
添加WebService的接口,使用@WebService和@WebMethod注解修饰类。
添加实现WebService接口的类,使用@WebService修饰,并指定EndpointInterface属性到接口的完整类名。
添加一个Endpoint来发布WebService。
package com.webservice.server; import java.util.List; import java.util.Set; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public interface WeatherService { @WebMethod public Set<String> getProvinces(); @WebMethod public List<String> getCitys(String proName); }