简介
webservice 跨编程语言和操作系统平台的远程通用技术。
三要素
soap、wsdl(web service description language)、UDDI
soap
simple object access protocol 简单对象访问协议,一种交换数据的协议规范,是一种轻量的、简单的、基于XML的协议。用于描述传递信息的格式。
wsdl
用来描述如何访问具体的接口,就像web service的说明书,描述其方法、参数、返回值。客户端要调用一个ws服务的时候,需要知道该服务的wsdl地址,ws的提供商可以通过两种方式来暴露它的wsdl文件地址:1.注册到uddi服务器 2.直接告诉客户端调用者
uddi
universal description discovery and integration 通用描述、发现与集成服务,是一种目录服务,企业可以通过它对ws 进行注册和搜索。
java web service 的规范
三种规范:jax-ws 、 jaxm&saaj、jax-rs
jax-ws
java api for xml -web service 取代了之前的jax-rpc 位于java.xml.ws包中,大多数都是基于这种规范
jaxm-saaj
略
jax-ws
是针对restful 风格制定的一套web服务规范。
wsdl 文档结构
Service:相关端口的集合,包括其关联的接口、操作、消息等。
Binding:特定端口类型的具体协议和数据格式规范
portType: 服务端点,描述 web service可被执行的操作方法,以及相关的消息,通过binding指向portType
message: 定义一个操作(方法)的数据参数
types: 定义 web service 使用的全部数据类型
阅读方式
WSDL文档应该从下往上阅读。
1.先看service标签,看相应port的binding属性,然后通过值查找上面的binding标签。
2.通过binding标签可以获得具体协议等信息,然后查看binding的type属性
3.通过binding的type属性,查找对应的portType,可以获得可操作的方法和参数、返回值等。
4.通过portType下的operation标签的message属性,可以向上查找message获取具体的数据参数信息。
SOAP
soap = http + xml ws 还是依赖http的post 请求,将xml放到请求体中。
xml 结构
必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息 可选的 Header 元素,包含头部信息 必需的 Body 元素,包含所有的调用和响应信息 可选的 Fault 元素,提供有关在处理此消息所发生错误的信息
Java web service 框架
1. 原生的jax-ws
2.Axis2 重量级的web service 不但能发布和制作ws,还可以生成java 和其他语言版ws的客户端和服务端代码,依赖的jar很多 代码很复杂
3. xfire 高性能ws 框架,但是只针对java 对其他语言没有提供工具。后来渐渐落败
4.cxf soa简易框架 实现了esb 总线 全称为Enterprise Service Bus,即企业服务总线; 源于xfire
final:
如果你需要多语言的支持,你应该选择AXIS2。如果你需要把你的实现侧重JAVA并希望和Spring集成,CXF就是更好的选择
相关网址
https://blog.csdn.net/c99463904/article/details/76018436
image.png
网友评论