文档库 最新最全的文档下载
当前位置:文档库 › Web Service复习

Web Service复习

Web Service复习
Web Service复习

Web Service复习内容

第1章 XML Web 服务简介

1、WebService的优缺点,有什么局限

1.5.1 基于标准

所有的XML Web服务都是通过同样的方式实现的-使用同样的协议,按相同的方式对数据编码,客户或服务无论位于何种平台,客户都可以方便地使用XML Web服务。

1.5.2 非商业性

XML Web 服务使用的标准是在开放式、基于社区的环境下开发出来的,吸收了技术提供者、大型企业和学术界的研究成果。

1.5.3 简便性

操作系统和当前的开发工具抽象了XML Web服务领域的的标准与协议,编程人员无需了解这些内容的细节。

1.5.4 独立于语言及平台

使用XML Web 服务只需满足两个前提:使用TCP/IP通信、能处理XML语言。

1.5.5 功能抽象(例如B2B集成)

通过接口,将多个系统的底层功能聚合起来。如天气预报中温度、潮汛等信息可以从各自独立的系统中获取。

1.5.6 跨防火墙通讯

1.5.7 可发现性

通过服务注册表机制,便于提供者公布其服务,同时供客户查找服务。

1.5.8 提高开发效率

多个用户可以同时使用相同的组件。

基于文本的协议,方便读取和解决问题

1.5.8 不适宜使用XML Web服务的情况

闭合系统

对性能要求高

可靠性要求高

技术局限性,如安全性等

2、分布式应用程序的含义,有哪些典型的应用

分布式应用程序是指应用程序的调用过程可以在多台物理上独立的计算机之间实现,同时数据也存储在不同的物理位置,但是应用程序的逻辑结构还是整体的,与分布的物理结构无关.

3、WebService使用了哪些协议

UDDI,WSDL,SOAP,XML,HTTP,TCP/IP

4、传统分布式应用程序体系结构有哪些缺陷

大型机系统成本昂贵

?构建大型机系统本身的投入很高

?难以承受发生故障的损失

数据属于不同的所有者

?不同的数据所有者不愿意把数据集中存放

安全性考虑

?将普通数据和敏感数据存放在不同的服务器上有助于提高安全性在不同的系统中,数据源不相互兼容(举例)

?不同的硬件平台、操作系统支持的数据类型不同

服务器故障或服务器无响应

?相比大型机系统,分布式应用发生单点失败的可能性更大客户端故障

?保证可以通知服务器并释放服务器上的资源

有时不允许重新调用(以金融业务为例)

除了考虑身份验证和授权外还必须考虑数据传输的安全性

在多台计算机之间同步时钟(一致性问题,7.23动车事故)

第2章使用Visual Studio .NET开发XML Web 服务

1、.net 开发XML Web服务,需要用到哪些命名空间,

using System.Web.Services;

using System.Web.Services.Protocols;

2、是否只能使用.net来开发XML Web服务,可以用其它工具开发吗

可以

3、.net 开发XML Web服务的后缀是什么

asmx

4、如何创建动态链接库

新建项目-→类库

5、WebService和WebMethod的属性各有哪些,它们的功能

WebMethod属性

6、在IIS上使用WebService 对操作系统的要求,需要哪些组件

第4章创建SOAP 与 HTTP客户端

1、使用Web Service过程中,需要用到哪些操作(添加Web引用,身份验证等待,还有哪些),操作顺序怎样

●启用代理类

客户端应用程序中导入代理类

using ProxyText.ValidatorService;

实例化代理类

VISAValidator x_validator = new VISAValidator();

调用代理类的方法

x_validator.ValidateVISACard("0123 4567 8901 2345");

2、客户端是使用Web服务代理是添加引用还是添加Web引用

添加Web引用.

3、Web Reference文件夹下面各有哪些文件,这些文件的功能是什么

4、采用SOAP方法访问Web Service有什么优点

?代理类使得开发人员无需直接操作SOAP消息

?每个代理方法所带参数的数量和类型及其返回的数据类型都与其映射的XML Web服务相同

?客户端应用程序只需调用代理类方法

?形式上调用代理类方法与调用本地方法一致

5、web引用的属性各有什么含义,如何动态改变web 服务的URL

第5章 XML Web 服务中数据类型

1、能使用的简单数据类型、复杂数据类型、引用数据类型有哪些

?SOAP规范中包含与.NET类型兼容的简单类型

?包含:

bool、byte 、char 、decimal 、double

short 、int 、long 、float 、string

?使用HTTP表示数据类型

?采用字符串或字符的形式

?只能访问部分.net数据类型

2、使用引用数据类型时,XML Web 服务的客户端与服务器端能共享同一内存空间吗不能

3、XML Web 服务中使用SOAP表示数据有什么优点,用http可以传送哪些类型的数据?每种平台都有自身的一套数据类型

?SOAP提供了一种所有平台都支持的中间表示方式

?客户端只需将SOAP类型转换为自身使用的可理解的类型

字符串或字符

4、XML Web 服务中对象使用作为参数时,要注意什么

?它是使用原始类型构成的,通常也叫对象

?SOAP中对对象是使用一个名为序列化的进程来表示

?序列化只包含对象的公共属性和变量的值,忽略方法、索引以及其他访问性为private或static的成员

第6章异常处理与调试XML Web 服务

1、如何设置XML Web 服务的响应等待时间

Timeout.Infinite(无限等待)

2、Web服务将异常发往SOAP客户端,将在客户端引发什么类型的异常,

?将异常发往SOAP客户端

?SOAP Fault(SOAP错误编码),然后将其送回客户端

?SOAP Fault主要字段:faultcode和faultstring

?使用SOAP代理,引发的异常是

System.Web.Services.Protocols.SoapException

SoapException.Code = faultcode,服务器错误

SoapException.Message = faultstring,捕获异常的堆栈跟踪的字符串

3、Web服务中常用的错误代码有哪些;如果使用自定义错误代码,需要注意什么,如何使用自定义错误代码

200 成功OK 正常读取内容已完毕

404客户端错误Not Found 用户访问的URL地址并不存在

502 服务器错误Bad Gateway 错误的网关请求

4、程序开发过程中会遇到哪两种类型错误,各种的含义

编译时和运行时

5、配置项目时,Release与Debug有什么区别

Debug含有调试信息,Release不含调试信息

第7章发布和发现XML Web 服务

1、发现工具有哪些

UDDI,DISCO

2、uddi、disco,wsdl 主要功能,相关概念(黄页、白页、绿页,tModel等),UDDI 注册表中标识符的作用

?UDDI的工作方式和邮局公开发行的电话黄页类似,它把特定的企业信息和Web Services在Internet上广而告之,并提供具体的联系地址和方式

?UDDI商业注册中心是UDDI的核心组件

?公共的UDDI商业注册中心(IDDI Registry)面向全球企业,不同站点之间采用对等网络(P2P)通信。

?UDDI商业注册中心维护了全球企业和企业提供的Web Service全球目录,信息描述的格式遵循XML格式

?UDDI商业注册中心所提供的信息从概念上分为三个部分:白页(White page)、黄页(Yellow page)、绿页(green page)。

?白页表示与企业有关的基本信息,包括企业名称、经营范围、联系地址、企业标识等

?黄页依据标准分类法区分不同的行业类别,使企业能够更大范围内查找已经在注册中心注册的企业或 Web Services

?绿页包括企业所提供的Web Services的技术信息

3、UDDI的主要工作原理

4、WSDL定义WebServices一般使用哪些元素

?WSDL把WebServices服务访问点和消息的抽象定义与具体的服务部署和数据格式的绑定分离开来,因此可以对抽象定义进行重用

?WSDL文档中消息是指对数据的抽象描述

?端口类型使用具体的协议和数据格式规范构成一个绑定,将Web访问地址与可再次使用的绑定相关联来定义一个端口,端口的集合定义为服务

?WSDL定义WebServices一般使用以下元素:

Type(类型),描述交换消息的数据类型定义

Message(消息),数据结构的抽象化定义,使用Type所定义的类型来定义整个消息的数据结构

Operation(操作),对服务中所支持的操作的抽象描述,一般的,一个Operation描述了一个访问入口的请求/相应消息对

PortType(端口类型),某个访问入口点类型所支持的操作的抽象集合,每个操作指向一个输入消息和多个输出消息。

Binding(绑定),特定端口类型的具体协议和数据格式的规范绑定,它有端口类型定义的操作和消息指定的具体协议和数据格式规范的结合

5、SOAP主要包括哪四部分

SOAP Envelope SOAP编码规则(encoding rule) SOAP RPC表示(RPC representation) SOAP绑定(binding)

6、发布与部署 Web Service有什么区别,各需要做什么

7、Visual Studio .NET Web安装项目来部署用软件时,其中许可协议用什么类型文件

8、能否把.cs文件部署到iis上?

不能

第8章状态管理

1、默认web服务是有状态的吗?

无状态

2、如何使web服务成为有状态,客户端与服务器端各要设置什么

?NET框架下创建的web服务是无状态的,它单独处理每个客户请求,各请求之间没有数据共享

?有状态的web服务在处理客户请求时保存有用的数据,在处理同一客户端后续请求时可以用到这些数据。

?.NET提供这两种类型的状态管理

?使用WebMethod属性的EnableSession子属性来表明XML Web服务类的哪个方法需要了解客户端的状态

[WebMothod(EnableSession = true)]

?当客户端第1次向XML Web服务发出请求时,https://www.wendangku.net/doc/0c6764854.html,为此客户端创建一个新的会话并在XML Web服务中响应中加入一个cookie,客户端在后续请求中都会包含这个

cookie

?NET框架默认不支持cookie,即它不会分配给客户端唯一的标识符请求

?必须为https://www.wendangku.net/doc/0c6764854.html,.CookieContainer设置代理类CookieContainer属性

?https://www.wendangku.net/doc/0c6764854.html,分配的标识符仅对代理类的一个实例有效

?将代理类创建为实例变量,并设置CookieContainer属性,客户端发送XML Web服务的所有请求都将使用同一客户端标识符,并被XML Web服务当作一个单独的会话。

?添加如下代码,将ValidatorService代理类定义为Form1的实例变量

?并设置CookieContainer属性

3、Session和Application区别,如何使用它们

一个网站只有一个Application可以有多个Session

第9章 DataSet 和 XML Web 服务

1、DataSet的主要概念

?DataSet可以看作是包含了一个或多个表的类,如同关系式数据库中的数据集

?通常DataSet存储来自关系数据库中的数据,也可以代表任何数据

?DataSet对象是断开的,即数据库和DataSet之间没有打开的连接

?DataSet能独立于原始数据进行查询和更新

?对DataSet的更新不会自动应用到数据库

2、用wsdl手动创建代理,各参数的含义

3、如何把手动创建代理添加到应用程序中

?添加库引用

【添加引用】|【浏览】

第10章缓存和应用程序事件

1、WbMethod(CacheDuration=60)实现缓存,60代表什么意思

60秒

2、使用缓存需要的导入的命名空间是什么

using System.Web.Caching

3、使用Cache对象的Insert方法,各参数的含义

?Cache对象由System.Web.HttpContext类的Current.Cache属性提供,其Add和Insert方法带有相同参数,Add方法不会更新缓存,Insert方法会更新实用了指定键的缓存数据。如下表所示

4、缓存在哪些场合下使用

?缓存作用:将信息存储在内存中,提高以后发出的请求速度,符合下列条件下可以使用缓存:

?数据创建很耗时或需占用大量资源

?多个客户端请求相同的数据

?缓存的数据不占用大量内存

?需要时可以重新创建数据

第11章使用异步XML Web 服务

1、异步使用了BeginValidateCard,EndValidateCard,怎么使用这些方法,各参数含义,它们能在同一线程中使用吗

?BeginValidateCard方法

?代理将调用XML Web服务方法,但只是立即返回对应用程序的控制,并不等待响应。

?除了方法指定的参数,还另外使用两个参数,并总是返回一个

System.IAsyncResult实例

?利用IAsyncResult属性,可以访问等待处理的异步操作状态的有用信息

public System.IAsyncResult BeginValidateCard(ValidationObject p_object, System.AsyncCallback callback, object asyncState) {

?EndValidateCard方法

?获取之前BeginValidateCard方法调用的异步XML Web服务结果

?它使用BeginValidateCard返回的IAsyncResult

?EndValidateCard方法的签名和返回值与同步方法ValidateCard一样。

?含义XML Web服务方法的结果

public void EndValidateCard(System.IAsyncResult ,

out ValidationObject p_object) {

public void ValidateCard(ref ValidationObject p_object) {

不能

2、IAsyncResult中各属性的含义

3、如何用用Wsdl.exe手动生成代理

4、同步与异步的区别,它们的优缺点各有什么

测试webService地址是否能够访问

通过COM组件测试webService地址是否能够访问 //适用于测试连接webService远程服务器 //引用Microsoft XML, v3.0 COM组件 //测试连接 privatevoid btnTestConn_Click(object sender, EventArgs e) { string strIP = txtServerAdddress.Text; if (!strIP.Contains("http://")) { strIP = "http://" + strIP; } string strProt = txtServerProt.Text; string strAddress = strIP + ":" + strProt + "/DataService?wsdl"; string urls = "http://192.168.1.7:8884/DataService?wsdl"; XMLHTTP http = new XMLHTTP(); try { http.open("GET", strAddress, false, null, null); http.send(strAddress); int status = http.status;

if (status == 200) { MessageBox.Show("成功"); } else { MessageBox.Show("连接失败。状态:" + status.ToString()); } } catch { MessageBox.Show("连接失败!"); } } 二、测试webService是否访问正常 //测试连接

webservice注解详解

webservice注解详解

javax.jws.WebService 当实现Web Service 时,@WebService 注释标记Java 类;实现Web Service 接口时,标记服务端点接口(SEI)。 要点: ? 实现Web Service 的Java 类必须指定@WebService 或@WebServiceProvider 注释。不能同时提供这两种注释。 此注释适用于客户机/服务器SEI 或JavaBeans 端点的服务器端点实现类。 ? 如果注释通过endpointInterface属性引用了某个SEI,那么还必须使用@WebService 注释来注释该SEI。 ? 请参阅适用于使用@WebService 注释的类的方法的规则,以了解更多信息 ?注释目标:类型 ?属性: - name wsdl:portType的名称。缺省值为Java 类或接口的非限定名称。(字符串)- targetNamespace 指定从Web Service 生成的WSDL 和XML 元素的XML 名称空间。缺省值为从包含该Web Service 的包名映射的名称空间。(字符串) - serviceName 指定Web Service 的服务名称:wsdl:service。缺省值为Java 类的简单名称 + Service。(字符串) - endpointInterface 指定用于定义服务的抽象Web Service 约定的服务端点接口的限定名。如果指定了此限定名,那么会使用该服务端点接口来确定抽象WSDL 约定。(字符串)- portName wsdl:portName。缺省值为https://www.wendangku.net/doc/0c6764854.html,+Port。(字符串)

XMLWebService完全实例详细解析

XMLWebService完全实例详细解析 首先,我们必须了解什么是webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice就是个对外的接口,里面有函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态.即是客户不了解(也不需要)其过程,他们只获取数据. webservice传递的数据只能是序列化的数据,典型的就是xml数据,这里我们也只讨论XML数据的传输. 有了一些对XML webservice的初步了解后,我们将切入正题,即是用一个具体的webservice事例的形式来讲解具体的webservice用法,用具体的事例来讲解一个概念我想怎么也要比单纯的说理能让人容易理解吧. 这里,我们将以一个简单的分布式课件搜索系统为例来讲解.使用VS2003为编译环境,C#为语言,SqlServcer2000为数据库.(这个例子来源于一位网上朋友的文章的启发,觉得很能代表webservice的特点,就按那个想法做了这么个系统来示例了) 首先,明确我们要做什么.我们需要一个对客户的接口,也就是个站点,我们把它称做ServiceGatherSite,它是何种形式都无所谓,甚至它本身并不需要数据库,它只是提供给用户一个查询的接口,真正的服务,普通用户是不接触到的.然后,这里我们还需要若干个提供服务的站点,我们可以称它们为资源站,这里为简单起见,假设有两个资源站,分别叫WebSiteA,WebSiteB,它们可以是不对外公布的,只是为了丰富查询数据而存在.最后,是我们最需要关注的东西---资源站提供给ServiceGatherSite的服务.两个资源站,就有两个服务,我们称为SiteAService和 SiteBService.两个服务间没有任何关系,内部提供的方法也完全没关联,只是需要把方法如何使用告诉ServiceGatherSite,意思是,服务只提供查询接口,返回的数据如何处理,服务本身并不管,全由使用服务的站点分配. 写了这么多,算是简要的介绍了下有关XML webservice的概念和我们这个例子的结构,下篇文章,我们将开始真正进入代码的设计阶段. 上篇文章介绍了些webservice的基本特性和我们例子的结构,这篇文章我们将开始具体的代码编写工作.

webservice注解详解

javax.jws.WebService 当实现Web Service 时,@WebService注释标记Java 类;实现Web Service 接口时,标记服务端点接口(SEI)。 要点: ? 实现Web Service 的Java 类必须指定@WebService 或@WebServiceProvider 注释。 不能同时提供这两种注释。 此注释适用于客户机/服务器SEI 或JavaBeans 端点的服务器端点实现类。 ? 如果注释通过endpointInterface属性引用了某个SEI,那么还必须使用@WebService 注释来注释该SEI。 ? 请参阅适用于使用@WebService 注释的类的方法的规则,以了解更多信息 ?注释目标:类型 ?属性: - name wsdl:portType的名称。缺省值为Java 类或接口的非限定名称。(字符串)- targetNamespace 指定从Web Service 生成的WSDL 和XML 元素的XML 名称空间。缺省值为从包 含该Web Service 的包名映射的名称空间。(字符串) - serviceName 指定Web Service 的服务名称:wsdl:service。缺省值为Java 类的简单名称 + Service。(字符串) - endpointInterface 指定用于定义服务的抽象Web Service 约定的服务端点接口的限定名。如果指定了此 限定名,那么会使用该服务端点接口来确定抽象WSDL 约定。(字符串) - portName wsdl:portName。缺省值为https://www.wendangku.net/doc/0c6764854.html,+Port。(字符串)

C#调用WebService实例和开发

C#调用WebService实例和开发 一、基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。简单的理解就是:webservice就是放在服务器上的函数,所有人都可以调用,然后返回信息。比如google就有一个web service,你调用它就可以很容易的做一个搜索网站。就像调用函数一样,传入若干参数(比如关键字、字符编码等),然后就能返回google检索的内容(返回一个字符串)。其中, Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。 WSDL:(Web Services Description Language)WSDL文件是一个XML文档,用于说明一组SOAP消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。 UDDI(Universal Description,Discovery,and Integration)是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP 消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。 二、优点缺点 Web Service的主要目标是跨平台的可互操作性。为了实现这一目标,Web Service完全基于XML(可扩展标记语言)、XSD(XML Schema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。因此使用Web Service有许多优点: 1、跨防火墙的通信 如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。要是客户端代码不再如此依赖于HTML表单,客户端的编程就简单多了。如果中间层组件换成Web Service的话,就可以从用户界面直接调用中间层组件,

Eclipse下WebService学习

Eclipse下WebService学习 文档作者:weichaoduo 日期:2006.7.7

1.准备工作 收集相关资料,下载并安装必备的工具。由于以前对WebService学习不是很重视,因此对WebService还不是很熟悉,不过我还是对它有些印象的,因为以前我曾经使用Delphi 和https://www.wendangku.net/doc/0c6764854.html,做过相关的例子。阅读几遍的相关资料后对有些抽象的概念还是有些模糊,但总体上认清了WebService的本质或者是用途吧。WebService其实就是向外部(跨语言甚至平台)公开一些函数方法等等内容,使外部能访问到所要发布的“服务”。几经周折终于完成了WebSerrvice环境的配置工作。 相关资料有: ●《Tomcat5.0.28下AXIS完全安装手册》 ●《详解怎样使用Axis开发Web Service的实例.》 ●《SOAP 是如何工作的》 ●《SOAP的协议规范》 ●《SOAP净化有线协议》 ●〈Web Services技術介紹〉 相关工具: ●Sun java JDK1.5 ●Apache Tomcat5.0/5.5 ●SUN JWSDP开发包 ●Axis开发包 ●Eeclipse集成开发环境 ●Eclipse插件—Workshop Studio ●Netbeans5.0 安装环境步骤省略。(其实直接下载JDK5。0+Tomcat5.0(最好是SUN公司的jwsdp-1_4-windows-i586.exe) + Workshop Studio就可以了)

2.初探Java中的WebService 首先按着资料上的例子做,利用JWS方法,建立一个温度转换的Java函数,然后发布出来,并最终调用它。步骤如下: (1)打开Eclipse配置好相关的环境,新建立一个”动态Web应用程序”—>新建立一个类 在该类中写入温度转换函数。如下列图: 图2.1 建立新的”动态Web应用程序“

webservice四种发布方式及客户端调用

WebService 四种发布方式总结 Author:yczhang 1.CXF方式 CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6.1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6.2.jar”报错,报的错为:https://www.wendangku.net/doc/0c6764854.html,ng.IncompatibleClassChangeError,明显的jar包不兼容问题,很是头痛,后来查找资料找到解决办法是,将上述jar包新建一个was共享库,可以解决,但是客户周经理不想用此种方式,因为需要修改was,于是改用了axis2方式,下文会介绍。该问题在此处做个记录,以后使用cxf与was的时候需要注意!!! 使用cxf+spring搭建WebService: 第一步,添加jar包。此处需要注意,不同环境(tomcat、was)jar也不一定相同,例如我本地cxf+spring只需要如下jar包: 而泰康的was环境则需要如下jar包:

明显的多了很多,原因应该是服务器jar包池的不同。根据错误提示缺什么补什么就可以了,注意jar包勿重复。 第二步,配置web.xml文件,如下(重要的地方已标记): contextConfigLocation classpath:/applicationContext.xml org.springframework.web.context.ContextLoaderListener encodingFilter org.springframework.web.filter.CharacterEncodingFil ter encoding UTF-8 encodingFilter /* CXFServlet org.apache.cxf.transport.servlet.CXFServlet 1 CXFServlet /webservice/* 上述标记的地方,第一处是spring配置文件路径;第二出是wsdl地址内容;

android调用WebService接口详解

Android调用WebService WebService是一种基于SOAP协议的远程调用标准,通过webservice可以将不同操作系统平台、不同语言、不同技术整合到一块。在Android SDK中并没有提供调用WebService的库,因此,需要使用第三方的SDK来调用WebService。PC版本的WEbservice客户端库非常丰富,例如Axis2,CXF等,但这些开发包对于Android系统过于庞大,也未必很容易移植到Android系统中。因此,这些开发包并不是在我们的考虑范围内。适合手机的WebService客户端的SDK有一些,比较常用的有Ksoap2,可以从https://www.wendangku.net/doc/0c6764854.html,/p/ksoap2-android/downloads/list进行下载;将下载的ksoap2-android-assembly-2.4-jar-with-dependencies.jar包复制到Eclipse工程的lib目录中,当然也可以放在其他的目录里。同时在Eclipse工程中引用这个jar包。 具体调用调用webservice的方法为: (1)指定webservice的命名空间和调用的方法名,如: SoapObject request =new SoapObject(http://service,”getName”); SoapObject类的第一个参数表示WebService的命名空间,可以从WSDL文档中找到WebService的命名空间。第二个参数表示要调用的WebService方法名。 (2)设置调用方法的参数值,如果没有参数,可以省略,设置方法的参数值的代码如下: Request.addProperty(“param1”,”value”); Request.addProperty(“param2”,”value”); 要注意的是,addProperty方法的第1个参数虽然表示调用方法的参数名,但该参数值并不一定与服务端的WebService类中的方法参数名一致,只要设置参数的顺序一致即可。 (3)生成调用Webservice方法的SOAP请求信息。该信息由SoapSerializationEnvelope对象描述,代码为: SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11); Envelope.bodyOut = request; 创建SoapSerializationEnvelope对象时需要通过SoapSerializationEnvelope类的构造方法设置SOAP协议的版本号。该版本号需要根据服务端WebService的版本号设置。在创建SoapSerializationEnvelope对象后,不要忘了设置SOAPSoapSerializationEnvelope类的bodyOut属性,该属性的值就是在第一步创建的SoapObject对象。 (4)创建HttpTransportsSE对象。通过HttpTransportsSE类的构造方法可以指定WebService的WSDL文档的URL: HttpTransportSE ht=new HttpTransportSE(“http://192.168.18.17:80 /axis2/service/SearchNewsService?wsdl”); (5)使用call方法调用WebService方法,代码: ht.call(null,envelope);

NET调用WebService服务的方法详解!

本文实例讲述了https://www.wendangku.net/doc/0c6764854.html,调用WebService服务的方法。分享给大家供大家参考,具体如下: 一、WebService:WebService是以独立于平台的方式,通过标准的Web协议,可以由程序访问的应用程序逻辑单元。 (1)应用程序逻辑单元:web服务包括一些应用程序逻辑单元或者代码。这些代码可以完成运算任务,可以完成数据库查询,可以完成计算机程序能够完成的任何工作。 (2)可由程序访问:当前大多是web站点都是通过浏览器由人工访问的,web服务可以由计算机程序来访问。 (3)标准的we协议:Web服务的所有协议都是基于一组标准的Web协议,如HTTP、XML、SOAP、WSDl、UDDI等 (4)平台独立性:web服务可以在任何平台上实现。因为标准协议不是由单个供应商专用的,它由大多数主要供应商支持。 SOAP(Simple Object Access Protocol,简单对象访问协议)协议:是用于交换XML编码信息的轻量级协议,SOAP协议是HTTP和XML协议的组合。 WSDL(Web Service Description Language,Web服务描述语言)是用XML文档来描述Web 服务的标准,是Web服务的接口定义语言。 二、创建https://www.wendangku.net/doc/0c6764854.html, WEB服务 建立Web服务就是把一些信息或逻辑对其他计算机和客户公开,进一步说,就是从支持SOAP通信的类中建立一个或多个方法。 创建Web服务的步骤:(VS2008) 首先,新建一个网站。选择文件-------->新建--------->网站,打开“新建网站”对话框,选择“https://www.wendangku.net/doc/0c6764854.html, web服务”模板。确定后,创建成功。 创建好后,会生成Service.asmx,其代码隐藏文件Servece.cs位于App_Code文件中。Web服务文件都使用扩展名.asmx。 发现在VS2010中,创建web服务是先新建一个网站,在选择添加新项,然后选择web 服务。 三、使用https://www.wendangku.net/doc/0c6764854.html, Web服务 (1)添加Web引用 1、新建网站,右键单击网站根目录,选择“添加Web引用”项。 2、在“添加Web引用”对话框中,在URl列表框中选择或者填入Web服务的URL。(.asmx 文件路径)然后在“添加Web引用”文本框中填入希望在应用程序中使用的添加Web引用名。

Delphi调用WebService的实例(非常经典)

Delphi 调用webservice 经典实例 Dispatch: 派遣,分派 Invoke: 调用 Invokable: 可调用接口 TReomtable: WebService中自定义类都是继承自该类 TSOAPAttachment: Attachment:附件,一种流类型,可以返回流数据 CGI:(EXE) ISAPI:(DLL) Base64编码: uses EncdDecd; s := EncodeString(s); //加 base64 编码 s := DecodeString( str ); //解码 UTF8: UTF8 是8位的UNICODE字符,而ASCII是7位 ,gb2312和unicode是2字节/字,utf8是3字节/字utf8类似以前的8位转7位的编码,是为了在网络间不同系统的通讯方便而作的转换。几乎所有用.Net写的WebService只支持DOC方式、Delphi写的只支持RPC方式;J2ME目前对Web Service的支持仅限于RFC172,而 RFC172要求必须为DOC方式(sun怎么偏袒MS?)! 为了在设计中减少障碍,下面还介绍几个概念。 1) SOAP:SOAP是一种简单有效的数据传输协议,用于分布式网络环境下数据信息交换,它以XML 作为数据传输的格式,搭配Internet上标准的传输协议HTTP、SMTP、TCP等来传送信息。从本质上看,SOAP事实上只是将Request和Response经由XML格式把数据打包,达到双方沟通的目的。 2) WSDL:WSDL(Web Service Description Language)是一种以XML格式描述的Web Service语言,当Web Service Provider 要对外公布提供的 Web Service,就需要通过WSDL来构建描述语言。在WSDL中有两个非常重要的要素::此WSDL文件所要描述的Web Service集合;每一个Port代表外界Client可以和此Service沟通的一个进入点,一个Port会指定一个Binding方式。 3):处理中文乱码的问题: 将HttpRio的 Converter 的 Options 的 soUTF8InHeader 设为 True 将生成soap消息的HTTPSoapDispatcher控件,添加encoding为gb2312 https://www.wendangku.net/doc/0c6764854.html,eUTF8InHeader := True; 4)在Delphi中,能够传递的自定义类型的对象要继承TRemotable, 5:修正一个服务器端的一个Bug:将ISAPIThreadPool和ISAPIApp的次序变一下:ISAPIApp必须在 ISAPIThreadPool之前: uses ... ISAPIApp, ISAPIThreadPool 解决如下错误: Received content of invalid Content-Type setting:text/html -SOAP"expects"text/xml" 6:"XML document must have a top level element. Line: 0" 错误,我该如何解决??哈纳斯 (2002-08-05 17:26:00) 我也曾碰到同样的问题解决方法是:别设httprio的wsdllocation,设它的url 如http://localhost/mydir/project1.exe/wsdl/IFIRST mydir是你的可执行的虚拟目录,IFIRST是你定义的接口名 ********************************************************************* **************************

C# 调用webservice 传递实体对象

C# 调用webservice 传递实体对象 在webservice端公开一个实体类,然后实例化,赋值,然后再给到webservice,可以实现,但是,即使调用端和service端的实体类完全一致,你也要重新实例化service端的,重新赋值,将此传回service端。因为,C#是强类型的语言。 当然,你也可以通过下面的方法传递实体类,而不用太纠结于赋值了。 在调用端序列化实体对象(实体对象须是可序列化的类): public static byte[] SerializeObject(object pObj) { if (pObj == null) return null; System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(memoryStream, pObj); memoryStream.Position = 0; byte[] read = new byte[memoryStream.Length]; memoryStream.Read(read, 0, read.Length); memoryStream.Close(); return read; } 在service的调用方法中,接受一个byte[] 参数即可,然后反序列化: public object DeserializeObject(byte[] pBytes) { object newOjb = null; if (pBytes == null) { return newOjb; } System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(pBytes); memoryStream.Position = 0; BinaryFormatter formatter = new BinaryFormatter(); newOjb = formatter.Deserialize(memoryStream); memoryStream.Close(); return newOjb; } 然后将object强制转换成相应的实体类型,就可以直接使用此对象了。 注:在调用端和service端都引用了同一版本的实体程序集.

第一个webservice例子

第一个的webservice实例 超简单,才5步 1> 获取axis及关联的jar包 https://www.wendangku.net/doc/0c6764854.html,/topics/download/6a76de1e-d506-35bc-a41b-508d4be04025 2> 新建一个模拟服务java类 package server; public class SayHello { public String getName(String name) { return "你好," + name; } } 3> 在web.xml 下新增一个servelt AxisServlet org.apache.axis.transport.http.AxisServlet AxisServlet /services/* 4> 在web项目的web.xml 同目录新建文件server-config.wsdd,自己改改

学习CXF WebService入门实例一

最近开发开始学习Web Service,如果你是大神,请路过!谢谢!遵循前辈大神们的教导~~~,内事不决问度娘,外事不决问谷歌(现在谷歌已经不能用了),只能问度娘了!上网一百度,套用周董的一句歌词,霍,霍,霍,霍,这么多的套路(axis,axis2,XFire,CXF等),我到底选择哪一个?因为要和Spring进行对接,看了一下,CXF与Spring的耦合度最好,于是就选择了CXF。上官网下jar包,下了最新的apache-cxf-3.1.4.zip包。解压出来,看看里面的最简单的实例,apache-cxf-3.1.4\samples\java_first_jaxws,本着你快乐所以我快乐加上不要脸的原则,我抄抄抄,改了一下名字,开发环境jdk1.6, jdk1.5没试过,上眼呐! 新建工程mywbs,导入jar包 cxf-core-3.1.4.jar jetty-continuation-9.2.11.v20150529.jar jetty-http-9.2.11.v20150529.jar jetty-io-9.2.11.v20150529.jar jetty-server-9.2.11.v20150529.jar jetty-util-9.2.11.v20150529.jar wsdl4j-1.6.3.jar xmlschema-core-2.2.1.jar 一、接口类IHelloWorld.java package com.ws.hello; import java.util.List; import javax.jws.WebService; import https://www.wendangku.net/doc/0c6764854.html,ers; @WebService public interface IHelloWorld { public String sayHello(String name); public String getUserName(Users user); public List getListUser(); } 二、实现类(说明endpointInterface = "com.ws.hello.IHelloWorld",IHelloWorld 类加上路径,此处注意)HelloWorldImpl.java package com.ws.hello; import java.util.ArrayList; import java.util.List; import javax.jws.WebService; import https://www.wendangku.net/doc/0c6764854.html,ers; @WebService(endpointInterface = "com.ws.hello.IHelloWorld",serviceName = "IHelloWorld", portName="IHelloWorldPort") public class HelloWorldImpl implements IHelloWorld { @Override public String sayHello(String name) { return name + ": 您好啊!";

在ASPNET中调用WebService接口

一、在https://www.wendangku.net/doc/0c6764854.html,中调用基于HTTP基本认证的WebService接口 在https://www.wendangku.net/doc/0c6764854.html,中调用基于HTTP基本认证的WebService接口的方法: 1、先用WSDL.EXE工具生成接口的代理类。 2、在代理类中重载GetWebRequest方法 protected override https://www.wendangku.net/doc/0c6764854.html,.WebRequest GetWebRequest(Uri uri) { HttpWebRequest request= (HttpWebRequest)base.GetWebRequest(uri); if (PreAuthenticate) { NetworkCredential networkCredentials = Credentials.GetCredential(uri, "Basic"); if (networkCredentials != null) { byte[] credentialBuffer = new UTF8Encoding().GetBytes( https://www.wendangku.net/doc/0c6764854.html,erName + ":" + networkCredentials.Password); request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(credentialBuffer);//将验证信息添加到HTTP头} else { throw new ApplicationException("No network credentials"); } } return request; } 3、在客户端使用以下方式进行调用: WebService service = new WebService();//代理类 NetworkCredential netCredential = new NetworkCredential("test", "test");//创建网络标识,此处填写用户名和密码Uri uri = new Uri(service.Url); ICredentials credentials = netCredential.GetCredential(uri, "Basic"); service.Credentials = credentials; service.PreAuthenticate = true; service.Method();

四种方式调用webservice

四种客户端调用WEBSERVICE 王凡 Woshiwangfan@https://www.wendangku.net/doc/0c6764854.html, Wf141732@https://www.wendangku.net/doc/0c6764854.html, 2009-08-22

目录 1.文档概述 (2) 1.1.相关文档 (2) 2.SERVER端 (3) 2.1.代码 (3) 2.2.SERVER端生成Wsdl (4) 2.3.服务端安全性设置 (6) 3.VB调用 (13) 3.1.准备 (13) https://www.wendangku.net/doc/0c6764854.html,调用 (16) 4.1.实现过程 (16) 5.Axis2调用 (17) 5.1.Axis2的安装 (17) 5.2.Axis2调用过程 (17) 6.Weblogic调用 (21) 6.1.Weblogic (21) 7.已解决及未解决的问题 ........................................................... 错误!未定义书签。 7.1.未解决的问题.................................................................... 错误!未定义书签。 7.2.已解决的问题.................................................................... 错误!未定义书签。

1.文档概述 1.1.相关文档 《Web Services开发教程.doc》

2.SERVER端 这个主要是用weblogic的workshop开发,用weblogic开发webservice具体可见沈辉的 《Web Services开发教程.doc》,这里主要是讲客户端调用,所以服务端只作罗列。 2.1.代码 在weblogic中构建webservice可以见《Web Services开发教程.doc》,用于本次测试的 Server代码如下: Model: package https://www.wendangku.net/doc/0c6764854.html,.tsingtao.logistics.model; import java.io.Serializable; public class test implements Serializable { private static final long serialVersionUID = 1L; private String NAME; private int AGE; public void setNAME(String name) { NAME=name; } public void setAGE(int age) { AGE=age; } public String getNAME() { return NAME; } public int getAGE() { return AGE; } } Service代码如下: public https://www.wendangku.net/doc/0c6764854.html,.tsingtao.logistics.model.test[] hello(String NAME,int AGE) { https://www.wendangku.net/doc/0c6764854.html,.tsingtao.logistics.model.test[] t=new https://www.wendangku.net/doc/0c6764854.html,.tsingtao.logistics.model.test[10];

使用Myeclipse创建WebService实例

使用Myeclipse 开发基于JAX-WS的Web service实例 本文为Web service 开发入门篇,主要介绍在Myeclipse 环境下开发Web service的服务程序和客户端程序的基本流程。 在Weblogic 10.3.4 中部署Web service服务。 开发环境如下: JAVA IDE:Myeclipse Web server:Weblogic 开发Web service服务程序,需要了解以下相关内容,WSDL, SOAP, XML。这些是组成Web service 的基础。 在下开发Web service程序,目前系统支持的开发框架有3个, JAX-WS,REST(JAX-RS),XFire。其中系统建议不要使用XFire 的框架,可能是要被淘汰了(deprecated)。我们选择的是JAX-WS框架。这个需要Java EE 的支持。所以后面选择Web server容器的时候,是要能支持Java EE 的才可以部署成功。 (一)Web service服务端开发 1. 新建一个Web service project, 菜单File -> New -> Web Service Project,

在上面的框中输入项目名myWebSvc,框架选择JAX-WS, J2EE只能选择Java EE 。Finish完成项目新建。 2. 新建一个Java Bean, 就是一个普通的Class, File –> New -> Class,

包名输入类名输入SayHello, Finish 结束新建类。在类中加入一个方法sayHaha如下, package public class SayHello

Java RPC 原生实现之WebService详解

Java RPC 原生实现之WebService 一WebService释义 WebService是一种跨语言和跨操作系统的系统间交互标准。 WebService采用SOAP协议封装数据、HTTP协议传输数据、WSDL 描述服务发布的XML格式。 二Java实现 JavaSE6内置支持WebService,可以直接用来实现远程调用,服务端通过@WebService来标记对外暴露的服务实现类,通过调用Endpoint.publish发布到指定的服务地址上。话不多说,直接上代码更直观。

服务接口: 注意:接口上一定要加@WebService注释,否则会报如下异常,端点接口没有Web服务注释。 服务实现类(document风格): 发布服务有两种SOAPBinding风格,SOAPBinding.style.DOCUMENT 和SOAPBinding.style.RPC,默认的是DOCUMENT。我们先以默认的风格来实现。

@WebService注解属性释义: endpointInterface:服务接口, 指定做SEI(Service EndPoint Interface)服务端点接口。 name:指定XML Web Service的名称。默认情况下,该值是实现XML Web Service的类的名称,wsdl:portType 的名称。缺省值为Java 类或接口的非限定名称。 serviceName:对外发布的服务名,指定Web Service 的服务名称:wsdl:service。缺省值为Java 类的简单名称+ Service。(字符串)。 targetNamespace:指定名称空间,默认使用接口实现类的包名反缀。 portName:wsdl:portName。缺省值为https://www.wendangku.net/doc/0c6764854.html,+Port。

相关文档