博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webService 三要素
阅读量:6195 次
发布时间:2019-06-21

本文共 3244 字,大约阅读时间需要 10 分钟。

WebService(jax-ws)三要素  SOAP: 基于HTTP协议,采用XML格式,用来传递信息的格式。  WSDL: 用来描述如何访问具体的服务。(相当于说明书)  UDDI: 用户自己可以按UDDI标准搭建UDDI服务器,用来管理,分发,查询WebService 。其他用户可以自己注册发布WebService调用。(现在基本废弃) 1.SOAP(通讯协议)     Simple Object Accrss Protocol,简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:(1)SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它,以及如何处理它们的框架;(2)SOAP编码规则,用于表示应用程序需要使用的数据类型的实例。(2)SOAP RPC 表示远程过程调用和应答的协定。(4)SOAP绑定(binding),使用底层协议交换信息。 (1)请求的协议体POST /weather HTTP/1.1Accept: text/xml, multipart/relatedContent-Type: text/xml; charset=utf-8SOAPAction: "http://weather.itheima.com/WeatherInterface/getWeatherByCityNameRequest"User-Agent: JAX-WS RI 2.2.4-b01Host: 127.0.0.1:54321Connection: keep-aliveContent-Length: 235
北京
(2)响应的协议体HTTP/1.1 200 OKTransfer-encoding: chunkedContent-type: text/xml; charset=utf-8Date: Fri, 09 Oct 2015 07:23:29 GMT
今天风很大
(3)发布基于soap1.2协议的服务在SEI(service endpoint interface 服务端点接口)实现类上添加如下注解@BindingType(javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING)发布基于soap1.2协议的服务,需要jax-ws包要求2.2.8以上版本。 (4)soap1.2请求的协议体POST /weather HTTP/1.1Accept: application/soap+xml, multipart/relatedContent-Type: application/soap+xml; charset=utf-8;action="http://weather.itheima.com/WeatherInterface/getWeatherByCityNameRequest"User-Agent: JAX-WS RI 2.2.4-b01Host: 127.0.0.1:54321Connection: keep-aliveContent-Length: 233
北京
(5)soap1.2响应的协议体HTTP/1.1 200 OKTransfer-encoding: chunkedContent-type: application/soap+xml; charset=utf-8Date: Fri, 09 Oct 2015 07:54:53 GMT
今天风很大
2.WSDL WSDL(Web Service Description Language),是一个用来描述Web服务(Web Service)和说明如何与Web服务通信的XML语言。因为是基于XML的, 所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。

 

(1)wsdl的阅读方法是从下往上读。每个wsdl有且只有一个Service节点。1、先找Service节点2、Service节点中找port节点。每个port对应一个PortType。3、Port节点对应一binding节点。每个binding节点对应一个PortType4、PortType中有operation 节点就是服务的方法。5、operation 中有Input(参数)和output(返回值)6、Input(参数)和output(返回值)对应message节点7、Message对应element节点。Element节点对应complexType节点描述了参数及返回值的数据类型。 (2)使用注解规范wsdl@WebService: 定义服务,在public class上边。   targetNamespace:指定命名空间。   name:portType的名称。   portName:port的名称。  serviceName:服务名称。 @WebResult:定义返回值。   name:返回结果值的名称。 @WebParam:定义参数。   name:指定参数的名称。 @WebMethodexclude:排除指定的方法。默认情况下,SEI实现类中所以的public方法会发布成服务方法。如果不想把public方法发布成服务方法,需要使用@WebMethod注解。把此方法排除。在实现类中至少有一个方法发布为服务方法。

 

 

 

http://127.0.0.1:12345/weather?wsdl

 

http://127.0.0.1:12345/weather?xsd=1

 

作用: 通过注解,可以更加形像的描述Web服务。对自动生成的wsdl文档进行修改,为使用者提供一个更加清晰的wsdl文档。当修改了WebService注解之后,会影响客户端生成的代码。调用的方法名和参数名也发生了变化。 3.UDDI     UDDI 是一种目录服务,通过它,企业可注册并搜索 Web services。企业将自己提供的Web Service注册在UDDI,也可以使用别的企业在UDDI注册的web service服务,从而达到资源共享。     UDDI旨在将全球的webservcie资源进行共享,促进全球经济合作。     但是使用webservice并不是必须使用UDDI,因为用户通过WSDL知道了web service的地址,可以直接通过WSDL调用webservice。(现已废弃)

 

转载地址:http://tryca.baihongyu.com/

你可能感兴趣的文章
[转载]使用IntelliJ IDEA开发SpringMVC网站(二)框架配置
查看>>
视频转换器如何将视频MKV转换成MP4格式
查看>>
什么是Scrum的增量?
查看>>
前嗅ForeSpider采集配置界面介绍
查看>>
96. Unique Binary Search Trees
查看>>
安装lnmp 时如何修改数据库数据存储地址及默认访问地址
查看>>
PDF文件如何转成markdown格式
查看>>
Travis CI 部署遇到的问题
查看>>
Vue 中的样式绑定
查看>>
java Script 的if判断2
查看>>
网页水印SDK的实现
查看>>
学习webpack4 - 基础配置
查看>>
自建网盘教程之:使用可道云搭建私有云网盘,无需数据库
查看>>
前端总结
查看>>
线上模块XX 在高QPS下耗时剧增的原因排查总结
查看>>
JavaScript 简介
查看>>
docker搭建lnmp环境
查看>>
Mac上Cargo编译错误: failed to run custom build command for '*.*'
查看>>
Python实用技法第27篇:编写多行模式的正则表达式
查看>>
log4s 方便的前端日志下载工具
查看>>