webservice

WebService之Axis2快速入门(4): 传输二进制文件

心不动则不痛 提交于 2019-12-04 21:55:41
在《 WebService之Axis2快速入门(2): 传递复合类型的数据 》中讲过,如果要传递二进制文件(如图像、音频文件等),可以使用byte[]作为数据类型进行传递,然后客户端使用RPC方式进行调用。这样做只是其中的一种方法,除此之外,在客户端还可以使用wsdl2java命令生成相应的stub类来调用WebService,wsdl2java命令的用法详见《 WebService之Axis2快速入门(1): 用POJO实现0配置的WebService 》。 WebService类中包含byte[]类型参数的方法在wsdl2java生成的stub类中对应的数据类型不再是byte[]类型,而是javax.activation.DataHandler。DataHandler类是专门用来映射WebService二进制类型的。 在WebService类中除了可以使用byte[]作为传输二进制的数据类型外,也可以使用javax.activation.DataHandler作为数据类型。不管是使用byte[],还是使用javax.activation.DataHandler作为WebService方法的数据类型,使用wsdl2java命令生成的stub类中相应方法的类型都是javax.activation.DataHandler。而象使用.net

WebService高级,可靠消息

喜欢而已 提交于 2019-12-04 17:18:56
在互联网世界中,由于软件,网络,机器等各种无稳定因素,一个SOAP消息可能会发生传输失败。如果这是一个天气预报的消息,那么失败还不会造成太大影响,但如果消息是有关银行操作,比如转账,消息的传输不可靠就可能会导致用户的损失。 因为上述原因,WS-ReliableMessaging和OASIS标准,规定了一个模块化机制,确保消息传输的可靠性。 消息在源与目的地之间,消息一定有且仅有一次传递成功。也可以规定消息最少传递一次。 消息可以存在顺序性。 消息的时效性。 接下来,我将使用Metro框架来实现可靠消息。 Metro的安装 首先,若想使用Metro引擎,就必须先安装Metro。Metro的安装步骤可以从 https://metro.java.net/guide/ch02.html#mustanga3 找到。 开启可靠消息 开启可靠消息的方法很简单,基于之前开发webservice的步骤,开启可靠消息只需要修改server端。开启方法有两种: 使用WSIT配置文件,声明policy 直接在WSDL中声明policy policy如下: <definitions ....> <wsp:Policy wsu:Id="NewWebServicePortBindingPolicy" xmlns:wsrmp="http://docs.oasis-open.org/ws-rx/wsrmp

Spring整合CXf WebService总结

半城伤御伤魂 提交于 2019-12-04 04:01:25
Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。关于Java webService框架,主要有AXIS、XFire、CXF,还有Java自带的JAX-WS(必须JDK6以上环境)。 SOAP RPC的工作原理:类似于web的请求/响应方式,不同之处在于web客户和web服务器之间传输的是HTML数据。在SOAP RPC模式中,SOAP客户(程序)和SOAP服务之间传输的是符合SOAP规范的XML数据。 Web services使用两种技术: XML(标准通用标记语言下的一个子集):XML是在web上传送结构化数据的伟大方式,Web services要以一种可靠的自动的方式操作数据,HTML(标准通用标记语言下的一个应用)不会满足要求,而XML可以使web services十分方便的处理数据,它的内容与表示的分离十分理想; SOAP:SOAP使用XML消息调用远程方法,这样web services可以通过HTTP协议的post和get方法与远程机器交互,而且,SOAP更加健壮和灵活易用; 其他像UDDI和WSDL技术与XML和SOAP技术紧密结合用于服务实现。 1

webservice学习笔记part1

谁说胖子不能爱 提交于 2019-12-04 01:47:38
web service 1. web service 的概念 Webservice 一种使用 http 发送 SOAP 协议数据的远程调用技术 , 其中 , 远程调用技术可理解为 : 一个系统远程调用另一个系统的服务 , 目标获取另一个系统的业务数据 2. webservice 的三要素 2.1 WSDL wsdl, 全称是 web server definition language, 是服务器端的定义语言 , 可理解为是服务器端的使用说明书 说明接口 / 类、方法、参数和返回值, 随服务发布成功自动生成 XML 格式文档 文档的结构图 <service> 服务视图, webservice 的服务结点,它包括了服务端点 <binding> 为每个服务端点定义消息格式和协议细节 <portType> 服务端点,描述 web service 可被执行的操作方法,以及相关的消息, 通过 binding 指向 portType <message> 定义一个操作(方法)的数据参数 ( 可有多个参数 ) <types> 定义 web service 使用的全部数据类型 阅读顺序 : 由下向上 2.2 SOAP 1. 概述 : soap 是一种在 http 上传输的 xml 格式的数据 , 可以跨防火墙 (http 协议的端口是 80, 不会被拦截 ), 可以跨平台 ( 由于 soap 是由

JDK6开发原生webservice

随声附和 提交于 2019-12-04 00:57:38
webservice接口开发有用到Axis2、XFire、CXF等框架发布通过获取相关的wsdl文件即可实现远程通讯数据交互。 Axis2配合相关的IDE生成服务并发布到服务器上面相当简单和根据选择其中之一的wsdl引擎生成客户端调用java类,感觉类库jar包比较庞大应用起来也比较复杂。 XFire是比较强大的webservice框架,容易与web容器整合,以及spring提供整合支持。 CXF是apache收购XFire后改造产物,功能也相当强大。 而JDK6自带了webservice特性,可以不使用web容器,深感部署之简单,真正的轻量级,可以使你集中尽力解决服务端的相关功能设计与实现。 下面介绍JDK6自带的Webservice特性例子: IDE:eclipse javaee版 新建一个java工程后,建如下类即可简单实现webservice: package com.ws; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class Helloword { public String sayHello() { return "helloworld"; } public static void main(String[] args) { /

Webservice

心已入冬 提交于 2019-12-03 20:08:28
最近系统集成经常调用webservice,都是用一些框架直接生成本地客户端代码,然后调用本地客户端方法,对webservice的的原理和基本实现并不清楚,前几天c#调用java端的webservice,因为涉及到header验证的原因,直接简单的调用客户端方法报错,才认真了解了下webservice,主要是SOAP。 不管什么方法,包括本地生成的代理客户端的方法,webservice最终的交互就是基于soap协议的。 SOAP协议 = HTTP协议 + XML数据格式 WebService的工作调用原理:对客户端而言,我们给这各类WebService客户端API传递wsdl文件的url地址,这些API就会创建出底层的代理类,我调用这些代理,就可以访问到webservice服务。代理类把客户端的方法调用变成soap格式的请求数据再通过HTTP协议发出去,并把接收到的soap数据变成返回值返回。对服务端而言,各类WebService框架的本质就是一个大大的Servlet,当远程调用客户端给它通过http协议发送过来soap格式的请求数据时,它分析这个数据,就知道要调用哪个java类的哪个方法,于是去查找或创建这个对象,并调用其方法,再把方法返回的结果包装成soap格式的数据,通过http响应消息回给客户端。 来源: oschina 链接: https://my.oschina.net

WebService学习总结(二)--WebService相关概念介绍

落花浮王杯 提交于 2019-12-03 20:07:37
一、 WebService是什么?   1. 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据)   2. 一个跨语言、跨平台的规范(抽象)   3. 多个跨平台、跨语言的应用间通信整合的方案(实际) 二、为什么要用Web service?   web service能解决: 跨平台调用 跨语言调用 远程调用 三、什么时候使用web Service?   1. 同一家公司的新旧应用之间   2. 不同公司的应用之间   3. 一些提供数据的内容聚合应用:天气预报、股票行情 四、Web Service中的几个重要术语 4.1、 WSDL(web service definition language)    WSDL是 webservice定义语言, 对应.wsdl文档, 一个webservice会对应一个唯一的wsdl文档, 定义了客户端与服务端发送请求和响应的数据格式和过程 4.2、SOAP(simple object access protocal)   SOAP是" 简单对象访问协议 " 是一种简单的、基于 HTTP 和 XML 的协议 , 用于在WEB上交换 结构化的数据 soap消息: 请求消息 和 响应消息 4.3、SEI(WebService EndPoint Interface)   SEI是web service 的终端接口,

c# 和 delphi 的 base64 编码一致问题 webservice

末鹿安然 提交于 2019-12-03 20:02:56
c# 和 delphi 的 base64 编码一致问题 webservice 由于项目需要为包括c/s和b/s的多个平台提供统一业务逻辑,写个webservice来完成这个任务,通过webservice封装业务逻辑,为其他平台提供接口,以供调用,于是用delphi写一个webservice,起初没有任何采用任何编码,当然在调用的时候delphi客户端可以正常传输数据,c#网页部分调用却是乱码,肯定是两种语言的编码方式问题,引起的乱码,原因有了,最终也没有想到解决的办法。所以想两端提供一种统一的编码,通过编码和解码来达到编码方式的统一,这样应该就不会有乱码的问题了吧,我选择base64编码方式,base64在网络上良好的性能,这是满足这个所需要的,又折腾了一阵子,终于完成了,各个平台数据的统一,测试代码如下: 1 delphi部分: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,EncdDecd; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Button2: TButton; Edit3:

浅谈WebService SOAP、Restful、HTTP(post/get)请求

一世执手 提交于 2019-12-03 11:33:45
HTTP-GET 和 HTTP-POST HTTP-GET和HTTP-POST是标准协议,他们使用HTTP(超文本传输协议)谓词( 谓词是指条件表达式的求值返回真或假的过程。 )对参数进行编码并将参数作为名称/值对传递,还使用关联的请求语义。每个协议都包含一系列HTTP请求标头,HTTP请求标头及其他一些信息定义客户端向服务器请求哪些内容,哪个服务器用一系列HTTP响应标头和所请求的数据进行响应。 HTTP-GET 使用 MIME 类型 application/x-www-form-urlencoded(将追加到处理请求的服务器的 URL 中)以 URL 编码文本的形式传递其参数。 URL 编码是一种字符编码形式,可确保传递的参数中包含一致性文本,例如将空格编码为 %20,其它符号转换为%XX,其中XX为该符号以16进制表示的ASCII(或ISO Latin-1)值。 追加的参数也称为查询字符串。 与 HTTP-GET 类似,HTTP-POST 参数也是 URL 编码的。 但是,名称/值对是在实际的 HTTP 请求消息内部传递的,而不是作为 URL 的一部分进行传递。 我们日常网站、系统都是使用这种形式进行访问我们的应用程序。 web service(SOAP) Webservice的一个最基本的目的就是提供在各个不同平台的不同应用系统的协同工作能力。 Web service

远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)

天涯浪子 提交于 2019-12-02 19:07:02
RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式。优点是跨语言跨平台,C端、S端有更大的独立性,缺点是不支持对象,无法在编译器检查错误,只能在运行期检查。 Web Service Web Service提供的服务是基于web容器的,底层使用http协议,类似一个远程的服务提供者,比如天气预报服务,对各地客户端提供天气预报,是一种请求应答的机制,是跨系统跨平台的。就是通过一个servlet,提供服务出去。 首先客户端从服务器的到WebService的WSDL,同时在客户端声称一个代理类(Proxy Class) 这个代理类负责与WebService 服务器进行Request 和Response 当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP包进行解析,然后对事物进行处理,处理结束以后再对这个计算结果进行SOAP 包装,然后把这个包作为一个Response发送给客户端的代理类(Proxy Class),同样地,这个代理类也对这个SOAP包进行解析处理,继而进行后续操作