webService的介绍与简单使用

webService开发项目介绍:

1  Webservice:跨语言跨平台的远程调用技术。Web service 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术。
2  Java 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。
3  webService三要素:soap、wsdl、uddi
4  JAX-WS 的全称为 Java API for XML-Based Webservices ,早期的基于SOAP 的JAVA 的Web 服务规范JAX-RPC(Java API For XML-Remote Procedure Call).
5  JAXM(JAVA API For XML Message)主要定义了包含了发送和接收消息所需的API,SAAJ(SOAP With Attachment API For Java,JSR 67)是与JAXM 搭配使用的API,
为构建SOAP 包和解析SOAP 包提供了重要的支持,支持附件传输等.
6 JAX-RS 是JAVA 针对REST(Representation State Transfer)风格制定的一套Web 服务规范.

应用场景:

 二、应用场景
1 在做企业整体信息化时,企业中一般都或多或少的存在一些既存系统,这些各种各样的系统不可能全部推翻,重新规划和开发,因为很多供应商在某一领域也做的很专业,
博众家之长并进行集成应该是一个比较现实和可取的做法。各个系统之间通过WebService进行集成,不仅缩短了开发周期,降低了风险,还减少了代码复杂度,
并能够增强应用程序的可维护性,因为webservice支持跨平台且遵循标准协议(soap)。
2 将一个软件的功能以webservice方式暴露出来,达到软件重用。例如上边分析的天气预报,将天气查询功能以webservice接口方式暴露出来非常容易集成在其它系统中;

再比如一个第三方物流系统将快递查询、快递登记暴露出来,从而集成在电子商务系统中。
 1 SOAP 是一种网络通信协议
 2 
 3 SOAP即Simple Object Access Protocol简易对象访问协议
 4 
 5 SOAP 用于跨平台应用程序之间的通信
 6 SOAP 被设计用来通过因特网(http)进行通信
 7 SOAP = HTTP+XML,其实就是通过HTTP发xml数据
 8 SOAP 很简单并可扩展支持面向对象
 9 SOAP 允许您跨越防火墙
10 Socket是所有通信的基础也是语言个无关平台无关。
11 Socket使用的是tcp协议,传输效率高。适合传递大数据高并发场景,高并发的情况需要实现多线程并且使用到线程池,编码复杂。Sockt的高并发框架mina。
12 Socket只是流的传输,传输的格式需要程序员自己定义。
13 Webservice使用的是soap协议,soap协议基于http协议的应用层协议,本质就是http+xml。Soap协议是w3c标准,传输效率低。
使用传输数据不是太大的场合,也是支持高并发的,受限于web容器。支持soap协议和wsdl两者都是国际通用标准,不需要自定义数据格式,只需要面向对象开发。

wsdl:

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

webService具体的使用:

一:服务端的使用:

1:创建接口,实现方法:

2:发布接口,地址:

3:浏览器打开地址,验证是否成功:

点击wsdl:显示如下说明发布成功:

 二:服务端发布成功后,客户端的使用:

1:使用DOS命令自动生成客户端代码:

1 对于客户端,我们可利用java中的wsimport来自动生成客户端代码(wsimport来源于jdk的bin目录下)。
2 使用Wsimport生成客户端调用代码, 
3 在jdk的安装目录的bin目录中,有一个wsimport命令。
4 可以根据wsdl文档生成客户端调用代码。
5 新建一个java工程WebServiceClient,然后到这个工程的src目录下面,在src目录下通过cmd运行以下命令:(注意空格)
6 wsimport -s . http://127.0.0.1:11111/weather?wsdl

2:代码生成后,调用方法:

 获取你想要的结果就完了!快去试试吧!

原文地址:https://www.cnblogs.com/dw3306/p/9370352.html