WebService快速入门

参考博客:

https://www.cnblogs.com/yangang2013/p/5708647.html

一、简介

Webservice:跨语言跨平台的远程调用技术。Web service 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术。

JAVA 中共有三种WebService规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。 
JAX-WS 的全称为 Java API for XML-Based Webservices ,早期的基于SOAP 的JAVA 的Web 服务规范JAX-RPC(Java API For XML-Remote Procedure Call). 
JAXM(JAVA API For XML Message)主要定义了包含了发送和接收消息所需的API,SAAJ(SOAP With Attachment API For Java,JSR 67)是与JAXM 搭配使用的API,为构建SOAP 包和解析SOAP 包提供了重要的支持,支持附件传输等. 
JAX-RS 是JAVA 针对REST(Representation State Transfer)风格制定的一套Web 服务规范

webService三要素:soap、wsdl、uddi

二、应用场景
1、跨防火墙通信
  如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户 端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。如果中间层组件换成WebService的话, 就可以从用户界面直接调用中间层组件。从大多数人的经验来看,在一个用户界面和中间层有较多交互的应用程序中,使用WebService这种结构,可以节 省花在用户界面编程上20%的开发时间。

2、应用程序集成
  企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常 需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集 成起来。通过WebService,可以很容易的集成不同结构的应用程序。

3、B2B集成
  用WebService集成应用程序,可以使公司内部的商务处理更加自动化。但当交易跨越供应商和客户、突破公司的界限时会怎么样呢?跨公司的商务交易集成通常叫做B2B集成。WebService是B2B集成成功的关键。通过WebService,公司可以把关键的商务应用“暴露”给指定的供应商和客户。例如,把电子下单系统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票。当然,这并不是一个 新的概念,EDI(电子文档交换)早就是这样了。但是,WebService的实现要比EDI简单得多,而且WebService运行在Internet 上,在世界任何地方都可轻易实现,其运行成本就相对较低。不过,WebService并不像EDI那样,是文档交换或B2B集成的完整解决方案。 WebService只是B2B集成的一个关键部分,还需要许多其它的部分才能实现集成。

  用WebService来实现B2B集成的最大好处在于可以轻易实现互操作性。只要把商务逻辑“暴露”出来,成为WebService,就可以让任何指定 的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用什么开发语言。这样就大大减少了花在B2B集成上的时间和成本,让许多原本无法承受 EDI的中小企业也能实现B2B集成。

4、软件和数据重用
      软件重用是一个很大的主题,重用的形式很多,重用的程度有大有小。最基本的形式是源代码模块或者类一级的重用,一种形式是二进制形式的组件重用。采用 WebService应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用,达到业务级重用。

三、WebService三大要素
1、soap协议
SOAP 是一种网络通信协议 
SOAP即Simple Object Access Protocol简易对象访问协议 
SOAP 用于跨平台应用程序之间的通信 
SOAP 被设计用来通过因特网(http)进行通信 
SOAP = HTTP+XML,其实就是通过HTTP发xml数据 
SOAP 很简单并可扩展支持面向对象 
SOAP 允许跨越防火墙

Webservice使用的是soap协议,soap协议基于http协议的应用层协议,本质就是http+xml。Soap协议是w3c标准,传输效率低。使用传输数据不是太大的场合,也是支持高并发的,受限于web容器。支持soap协议和wsdl两者都是国际通用标准,不需要自定义数据格式,只需要面向对象开发。


2、WSDL
Webservice的使用说明书。描述了webservice的服务地址以及webservice服务接口、参数、返回值。
阅读方法:从下往上读。 
先找service节点:每个wsdl中,有且只有一个service节点。也叫服务视图节点。service中有port节点服务端端口。
根据port节点的binding属性找binding节点。根据binding节点的type属性找portType节点。
portType节点就是我们定义的SEI服务的接口类型。Prottype中的operation 节点就是方法名称。
operation 节点的input就是参数的定义,output就是返回值的定义。
Input有个属性叫做message,message属性对应message节点。其中有一个element,对应element节点。
Element节点定义中xsd中。定义了数据的类型。参数和返回值都在其中定义。


3、UDDI
UDDI 即 Universal Description,Discovery and Integration,也就是通用的描述,发现以及整合。
WSDL 呢,用来描述了访问特定的 Web 服务的一些相关的信息,可以在互联网上,或者是在企业的不同部门之间。
UDDI的话,是一个跨产业,跨平台的开放性架构,可以帮助 Web 服务提供商在互联网上发布 Web 服务的信息。
UDDI 呢是一种目录服务,企业可以通过 UDDI 来注册和搜索 Web 服务。

简单来时候话,UDDI 就是一个目录,只不过在这个目录中存放的是一些关于 Web 服务的信息而已。
 

四、入门案例

这个使用jdk自带的web服务实现,比较简单,属于入门级。

https://blog.csdn.net/CSDN_GIA/article/details/54863549

1、服务端

新建一个web工程,发布一个web服务,如下图:

发布成功后:在浏览器访问发布地址加上?wsdl,会出现如下图的xml格式文件

2、客户端

调用webservice服务,方法有很多,这个主要使用jdk自带自动生成代码的方法。

创建一个web服务client,得到如下代码视图

 

调用:


 

调用免费天气预报

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

使用以上方法,创建client自动生成代码。

tets是测试类

控制台打印:

五、webservice开发框架

参考博客:http://www.cnblogs.com/firstdream/p/5575928.html

CFX:https://blog.csdn.net/zhen340417593/article/details/50580670

https://blog.csdn.net/longshengguoji/article/details/41450177

https://blog.csdn.net/z714359830/article/details/54579980

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值