webservice了解一下!!
(1)什么是webservice?
webservice是一种可以跨编程语言和跨平台进行远程调用的一种技术,是同步进行。
webservice主要分为两种,一种是基于浏览器的瘦客户端应用程序,一种是基于浏览器的富客户端应用程序(RIA)。
webservice其实就是一个系统主动暴露到外面的API,通过发布的webservice路径生成客户端,通过客户端访问这个系统所主动暴露的API,进行调用操作。
WebService平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,WebService平台 必须提供一套标准的系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。
webservice平台必须提供一种标准来描述 webservice,让客户可以得到足够的信息来调用这个webservice。我们还必须有一种方法来对这个webservice进行远 程调用,这种方法实际是一种远程过程调用协议(RPC)。为了达到互操作性,这种RPC协议还必须与平台和编程语言无关。
(2)webservice是怎么实现的?
webservice实现主要是通过XML+XSD,SOAP和WSDL这三种技术实现。
1、XML+XSD
WebService使用HTTP协议进行数据传输数,是用XML格式对数据进行封装,在XML报文中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的 返回结果是什么。 使用XML的格式对数据进行封装解决了数据的显示的问题,但是XML没有标准的的数据类型的定义,没有明确的说明报文中的数据代表什么,更加无法扩展数据类型,而XSD(XML Schema)就是为规定XML中数据类型的标准出现的,当你使用其他的编程语言或者其他的操作平台的时候,所有的数据类型都必须转化为XSD类型,这样就克服了编程语言不同和操作平台不同的问题。
2、SOAP
WebService通过HTTP协议发送请求和接收结果,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明 HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用Web Service。
SOAP协议 = HTTP协议 + XML数据格式
SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。打个比 喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。
3、WSDL
WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都 能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的 Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。
WSDL 文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。 WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。
(3)webservice怎么使用?
代码中webservice分为服务端和客户端两部分,服务端就是系统主动暴露的API的具体处理代码,客户端就是远程调用时所使用的程序,客户端需要通过发布服务的具体路径来实现。如果服务端的代码有修改,客户端就需要重新生成。
(4)使用webservice应该注意些什么?
1、不要随意改动发布的Webservice的服务名称和Webservice方法名字。
2、服务端的程序完成之后,启动项目,有两种方式可以对服务端进行注册,一种通过@WebService和@WebMethod这两个标签表明这个程序是webservice的服务端代码,然后启动项目,扫描这两个标签,进行注册,另一种是通过XML配置文件,在配置文件中声明服务端程序,然后把配置文件配置到web.XML 中,这样项目启动就会加载到webservice服务端程序。
3、需要保证webservice服务端运行的环境稳定,不要变更太频繁。
4、需要确定webservice服务端的路径。
(5)使用webservice的好处?
1、可以跨操作平台进行通信。
2、可以忽略编程语言得差异。
3、使用HTTP协议和XML进行通信,稳定、普遍,复用性高,安全,快捷,有利于软件和数据重用,实现松耦合。
4、可以实现跨防火墙通信。
(6)webservice的缺点?
1、不适用与单机程序。
2、不适用于局域网内调用。
3、由于soap是基于xml传输,本身使用xml传输会传输一些无关的东西从而效率不高,随着soap协议的完善,soap协议增加了许多内容,这样就导致了使用soap协议去完成简单的数据传输的效率不高。如果直接用http传输自定义数据内容比webservice开发更快捷
(7)webservice实例?
1、定义接口,规定webservice的服务端的方法。
@WebService
public interface TestService{
@WebMethod
public void Test(byte[] message);
}
2、实现webservice接口,编写服务端的方法。
@WebService
public class Testimpl_Test implementsTestService{
@WebMethod
public void Test(byte[] message) {
String string =new String(message);
System.out.println("哈哈,成功了"+string );
}
}
3、进行服务端的注册,发布服务,主动暴露服务端API。
<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<jaxws:endpoint id="test1"
implementor="com.Testimpl_Test "
address="/TestService" />
</beans>
4、生成客户端,进行远程调用。
webservice了解一下!!的更多相关文章
- webService
什么是webService WebService,顾名思义就是基于Web的服务.它使用Web(HTTP)方式,接收和响应外部系统的某种请求.从而实现远程调用. 1:从WebService的工作模式上 ...
- 开始webservice了
一.WebService到底是什么 一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用 ...
- Spring WebService入门
Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布 ...
- 浅谈跨域以及WebService对跨域的支持
跨域问题来源于JavaScript的同源策略,即只有 协议+主机名+端口号 (如存在)相同,则允许相互访问.也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源. 在 ...
- 浅谈WebService的版本兼容性设计
在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...
- Atitit webservice发现机制 WS-Discovery标准的规范attilax总结
Atitit webservice发现机制 WS-Discovery标准的规范attilax总结 1.1. WS-Discovery标准1 1.2. 一.WS-Discovery1 1.2.1. ...
- java调用CXF WebService接口的两种方式
通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了. 2.静态调用 // 创建WebService客户端代理工厂 ...
- VS2010编写WebService与在IIS的发布<之简单讲解>
工具VS2010,window环境win7 一:Webservice的创建与方法查看调用 1.新建空web应用程序项目 2.新建web服务 3.自动生成 4.直接跑起来,可以看到有2个方法 5.点击H ...
- webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口
webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...
- webService学习之路(二):springMVC集成CXF快速发布webService
继上一篇webService入门之后,http://www.cnblogs.com/xiaochangwei/p/4969448.html ,现在我将我周六在家研究的结果公布出来 本次集成是基于之前已 ...
随机推荐
- [NOI2020]美食家 题解
题意分析 给出一个带权有向图,要求从节点 $1$ 出发,经过恰好 $T$ 的边权和,回到节点 $1$ ,求可经过的最大点权和.特别地,经过的边权和达到部分特殊数时,会有某个点的点权发生改变. 思路分析 ...
- activemq的搭建
说在前面的话: 本节主要介绍activemq的介绍以及activemq的安装,希望可以给迷惑中的读者带来一丝灵感,activemq的安装是基于linux环境下的 准备的环境: 一台安装jdk的linu ...
- windows快速安装linux虚拟机
1. 场景描述 因测试中需要linux集群,目前的服务器不太方便部署,需要本机(windows7)启动多个linux虚拟机,记录下,希望能帮到需要的朋友. 2. 解决方案 2.1 软件准备 (1)使用 ...
- Android Studio出现:Your project path contains non-ASCII 错误代码解决方法
导入Project的出现: Error:(1, 0) Your project path contains non-ASCII characters. This will most likely ca ...
- vue学习笔记一
vue 颠覆式的开发方式 解疑 为什么要学习vue? 降低项目的复杂度 就业需要 vue难不难? 特别简单 相比于React,vue有什么优势? 前端三大框架:Angular.React.Vue Vu ...
- C. News Distribution(并查集)
In some social network, there are nn users communicating with each other in mm groups of friends. Le ...
- Fibonacci and Counting(水题)
链接:https://ac.nowcoder.com/acm/contest/303/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- Nginx 前端项目配置 包含二级目录和接口代理
Nginx是目前用的比较多的一个前端服务器 其优点是配置简单修改一下server就能用 并发性能比较好,具体怎么好就看这个吧 开撸 1.找到nginx (liunx系统,已安装) whereis ng ...
- JS中有趣的内置对象-JSON
前言 在以前的web开发中,我们多数选择纯文本或XML作为我们的提交的数据格式,大多数是XML,少数纯文本.其实从AJAX(Asynchronous JavaScript and XML)的命名我们也 ...
- 17_Python的常用模块
1.随机数模块 random 1.随机小数 import random # (0,1)随机取浮点数 random.random() # 0.17988578778011 # (1, 3)取指定范围的浮 ...