http:客户端服务端通信的标准协议。
xml:跨平台跨语言的存储协议。
soap:简单对象访问协议。
webService
webService即web服务,是一种跨语言和跨平台的远程调用技术。
webService三要素:soap,wsdl,uddi。
JAX-WS(java API For XML-WebService):soap-----xml
JAX-RS(representationState Transfer):http 应用层-----xml json
webService是soa的一种实现
soap协议
简单对象访问协议(simple object access protocol)基于xml
soap=http+html
<soap:Envelope>//必须
<soap:header>
<soap:body>//必须
<soap:fault>
</soap:Envelope>
一次webService的调用,不是方法的调用,而是soap消息(xml)之间的输入输出
客户端到UDDI上寻找Service目录
客户端获得wsdl文件
客户端按照wsdl文件的约束和规范创建soap客户端
客户端通过soap访问service
WSDL
服务描述语言。SebService Defination Language 机器能阅读的语言。xml文件
wsdl说明中包括:
- 对外发布的服务名称(类)
- 接口方法名称(方法)
- 接口参数(方法参数)
- 服务返回的数据类型(方法返回值)
<wsdl:definitions> 命名空间:根元素
<wsdl:types>webService使用的数据
<wsdl:message>webService使用的消息
<wsdl:portType>webService执行的操作 接口 operation方法
<wsdl:binding>webService使用的通信
<wsdl:service>webService对外暴露
<definitions>
<types>定义webService使用的数据类型</types>
<message>每个消息均由一个或者多个部件组成。可以当成java中一个函数调用的参数
<protType>类似java中的一个函数库
<binding>为每个端口定义消息格式和细节
</definitions>
UDDI
注册表。命名服务。服务提供商将自己的web服务发布到互联网上。
应用场景
某个功能需要在多系统内使用。
优缺点
优
1.异构平台的互通性
2.更广泛的软件复用
3.成本低,可读性强,应用范围广
4.迅捷的软件发行方式
5.可以传递对象
缺
因为xml会传输没用的数据影响效率
ApacheCXF框架
ApacheCXF=Celtix +XFile,前身为ApacheCeltixXfre。
项目
建工程添jar包
创建服务接口 @WebService
服务实现类
mainServer启动类
Restful
新建资源,put用来更新资源,delete用来删除资源
服务端
客户端