首页 如何用AXIS2开发WEB服务_IT168文库

如何用AXIS2开发WEB服务_IT168文库

举报
开通vip

如何用AXIS2开发WEB服务_IT168文库 118 福 建 电 脑 2007年第 4期 如何用 Axis2开发 Web Service服务 唐 青 (福建卫生职业技术学院计算机教研组 福建 福州 350101) 【摘 要1:Web Service是一种新的 web应用程序分支。Apache Axis是较受欢迎的web se~ee开发平台之一。主要介绍 如果利用Axis2.1.0开发 Web服务以及如何利用 Axis2所提供的客户端 API进行 Web服务的调用。 【关键词】:webservice;Axis2;异步;同步 0.引言 ...

如何用AXIS2开发WEB服务_IT168文库
118 福 建 电 脑 2007年第 4期 如何用 Axis2开发 Web Service服务 唐 青 (福建卫生职业技术学院计算机教研组 福建 福州 350101) 【摘 要1:Web Service是一种新的 web应用程序分支。Apache Axis是较受欢迎的web se~ee开发平台之一。主要介绍 如果利用Axis2.1.0开发 Web服务以及如何利用 Axis2所提供的客户端 API进行 Web服务的调用。 【关键词】:webservice;Axis2;异步;同步 0.引言 Web Service是一种新的web应用程序分支。从 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 面上看, Web Service就是一个应用程序.它向外界暴露出一个能够通过 Web进行调用的API。从深层次上看,它们是自包含、自描述、模 块化的应用.可以在网络中被描述 、发布、查找以及通过 Web来 调用。SOAP是 Web Service的核心技术之一,是基于XML通信 的简单对象访问协议。其 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 规定了 SOAP消息的格式,以及怎 样通过HTrP来使用 SOAP。 Apache Axis是较受欢迎的 web service开发平台之一.它是 Apache WebService的子项目,其核心是一个 SOAP处理器,用 于开发包括客户端.服务器端,SOAP Gateway等各种应用。在本 文中.主要介绍使用 Axis2.1.0和 Tomcat5.5进行 WebService的 开发过程 。 1.A)【is2介绍 Axis2是最新一代的 Apache Axis。Axis2基于新的体系结构 进行 了全新编写,与上一代的 Axis相比 ,Axis2具有更 强的灵活 性 、更高 的执行效率 以及更 好的可配置性 。Axis2的主要特点包 括 : f11 Axi2建立了全新的轻量级的 XML对象模型 AXIOM,用 于处 理 SOAP消息.不仅 提高 了 XML信息集 的构建 速度 ,同时 所占用的内存要远小于 Axis 1所占用的内存。 (21 Axi2支持异步 WebService,通过非阻塞式客户端和传输 协议进行异步 WebService的调用: f31 Axis2内置支持 WSDL 2.0规范所定义的消息交换模式 (MEP)中两中最常用的 In-Only和 In—Out消息交换模式.并通 过对上述两种消息交换模式的组合来提供对新的消息交换模式 的扩展 : (41 Axi2支持 WebSe rvice定 义语 言 WSDL1.1和 WSDL2.0, 使得开发人员可以很方便的创建客户端存根(Stub)来访问远程 Webservice。 f51 Axi2支持超文本传输协议 qaTrP)、简单邮件传输协议 fsM 和传输控制协议 flop)等传输协议。 2.用 Axis2开发 WebService实例 首先,将 Axi2部署到 Tomcat服务器上,可参考 Axis2官方 网站的安装指南。下面将主要介绍如何利用 Axis2开发 Web服 务以及A)【is2所提供的客户端API进行Web服务的调用。 2.1开发 SayHello WebService 假设我们现在需要开发一个 SayHeHo的 Web服务,该 Web 服务接收客户端传送的用户名后,向客户端返回”HeHo,XXX”。 XXX代表传人的用户名。程序 清单 安全隐患排查清单下载最新工程量清单计量规则下载程序清单下载家私清单下载送货清单下载 如下 : public class SayHello I public OMElement sayHello(OMElement iu) I //获取客户端传送进来的用户名: String nsJlle=in.getTextO; OMFactoryfac= OMAbstractFactory.getOMFactory0; OMNamespaceomNs= fac.createOMNamespace(”http'J/myservie~. com/myservice” ”example"); OMElementresp= ac.createOMElement(”sayHello”,omNs); resp.setText(“Hello,"+name); return resp; l l 2.2编写配置文件 service.xml 每一个部署在 A五s2的Web服务都需要一个包含有 Web 服务配置信息的service.xml文件,具体的格式定义可以参考 Ax. is2帮助手册 .下面我们给 出了 SayHelloservice所对应 的 service. xml文件片断:: um:sayHello </actionMapping> </operation> <,service> 2.3 生 成 WebService部 署 打 包 文 件 XMUNOutMes- 塞 S ayHeHo clas sMyServicervice META INF日三 构,将编译所得的 . 连同包 ⋯⋯ . 目录拷贝到 目录下,将所创 .’~ 建的se .xrnl拷贝 到 一 目 l⋯⋯ ⋯ 录下 。 图 1 利用 JAR打包指令生成 WebService部署打包文件 SayHel- loService.aar.命令格式如下 : JAR cvf SayHelloService.nay. 2.4发布 SayHelloService 将打包 生成的 SayHe11oService.aar的文件拷贝到 Tomcat安 装 目录下的 webapp is2\WEB—INFkservices目录下 面便可轻松 发布我们刚刚开发完成的SayHelloService。 通过在浏览器中输 http://localhost:8080/ axis2/services/listServices.如果在可用的服务列表 中看到我 们刚刚发布 SayHeHoService.则表示 Webserviee已经发布成功 。 3.利用 A)【is2的客户端 API来调用 WebService Web服务调用的特性由消息交换模式 MEP、传输协议以及 客户端 API的同步或异步行为决定。Axis2当前支持 WSDL 2.0 定义 的 In-Onlv和 In-Out MEP。同时 Axis2客户端 AP1支持服 务的同步和异步调用。 3.1对 In—Only MEP的支持 Axis2通 过 org.apache.axis2.client.ServiceClient类 中的 fire- AndForget 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 提供对 ln—Only MEP的支持 .由于调用 In—Only 的操作比较简单 .大家可以参考 Axis2的用户手册。 3.2对 In—OutMEP的支持 Axis2通过 org.apache.axis2.client. ServiceClient类 中的 sendReceive方 法提 供对 In—Out MEP 的支持 .Axis2分别提供了阻塞式和非阻塞式 客户端 API。阻塞 式客户端 API在调用 Web服务之后 ,客户端应用将被挂起 ,一 维普资讯 http://www.cqvip.com 2007年第 4期 福 建 电 脑 119 直到服务调用操作完成。非阻塞式客户端 AP1支持 WebService 回调来实现异步 WebService.客户端调用一个 Web服务 之后 . 将不在挂起等待.服务端通过调用一个回调 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 来结束对请求 的处理 。 通过组合 API级别的同步异步行为以及传输层 的同步异步 行为.Axis2提供了下列四种方式的In一0ut操作来支持同步或 者异步 的 WebService调用 : 3.2.1单向阻塞式模式 这是调用 IIl一0ut Web服务操作最简单的方式。在客户端 接收到服务端 的响应之前 .客户端服务调用被阻塞 。单 向阻塞式 模式只使用一个传输连接来发送和接收响应。下面这段代码解 释了如何开发单向阻塞式In-Out操作。 pubic class TestMyService I private static EndpointReference targelEPR= new EndpointRcfcrence (”http://1ocalbost:8080/axis2/services/SayHelloService”); public static void main(Strinf1]args)I OMFactoryfac 0MAbstractFactory.getOMFactory0; 0MNamespace omNs: fac.createOMNamespace(”hap:/ 0MElement IⅡethod = fac.createOMElement(”sayHello“。omNs); ff传人的甩户名 method.setText(”tang”); 廿y I ServiceClient serviecClient= new ServiceClient0; Options options=new 0ptions0; serviceClient.setOptions(options); options.setAction(”urn:sayHello”); //指定 SayHelloService所在的服务器地址 options.setTo(targetEPR); ServiceClient sender=new ServiceClient0; sender.sctOptions(options); 0MElement result= sender.sendReceive(method); System.out.pfinfln(resuh getText0); 】 】 3.2.2单 向非 阻塞式模式 单向非阻塞式模式采用 API级的异步调用方式来实现异步 WebService调用,并使用一个传输连接来发送和接收响应,下面 这段代码解释了如何开发单向非阻塞式模式 In—Out操作。 public static void main(String[]args)I 回调函数定义.决定了当服务端处理完成返回时客户端的行为 callback callback=new callback0 I public void onComplete(AsyncResuh result) I System.out.pdntln (result.getResponseEnvelope0); l】 sender=new ServiceClient0; sender.setOptions(options); //绑定 回调函数 sender.sendReceiveNonBlocking(method,callback); 】 3.2I3双向阻塞式模式 . 双向阻塞式模式采用同步调用方式.发送请求和接收响应 分别使用独立的传输连接.下面这段代码解释了如何开发双向 阻塞式模式 In—Out操作。 public static void main(String[]args)I ,般 置传输协议 options.setTransportInProtocol(Constants. TRANSP0RT_If广rP); //采用独立的请求和响应传输连接 options.setUseSeparateListencr(true); ConfiguratlonContext configcontext ConfigurationContextFactory.createConfigurationContextFromFileSystem e. bapps\kaxis2\\WEB-INF",nul1); sender:new ServiceClient(configContext,nul1); sender.engageModule(new QName(Constants.MODULE_ADDRESSING)); sender.set0ptions(options); 0MElement result: sender sendReceive(method); System.out.pfinfln(resuit.getText0); 】 J 3.2I4双向非阻塞式模式 双向非阻塞式模式采用异步调用方式.发送请求和接收响 应分别使用独立的传输连接,下面这段代码解释了如何开发双 向非阻塞式模式 In-0ut操作。 public static void maln(String[] gs)I //采用独立的请求和响应传输连接 options.setUseScparateListener(true); options.setAction(“um:sayHello”); ,,回调函数定义 Callback callback=new Callback0 I public void onComplete(AsyncResuh result)I System.out.prinfln (result.getResponseEnvelope0); 】 】; ConfigurationContext configcontext。 ContlgurationContextFactory.createConfigurationContextFromFileSystem 、we- b pps、、啦js2、、WEB—IN ’.nul1); sender=new ServiceClient(configContext,nul1); sender engageModule(new QName(Constants.MODULE ADDRESSING)); sender.setOpfions(options); ,,绑定 回调函数 sender.sendReceiveNonBlocking(method,callback); J 4.结束语 Axis2作为一种 WebService开发引擎,其体系结构的开放 性以及开放源代码的特点.也给了程序员更多的想象空间,随着 JBulider以及Eclipse等主流开发工具对 Axis2的支持,Axis2必 将成为被广泛使用的WebService开发平台之一。Axis2.1.O作为 2006年 5月发布的最新版本 .仍有很多技术细节值得我们去进 一 步的研究.并不断地进行实践,这样才能够在实际开发过程中 更好地利用 Axis2技术。 参考文献 : 1.H.M.Deitd等著。web服务 实用教程.北京:机械工业 出版社 ,2004.1 2.http://ws.apache.org/axis2. 3.冉玉春.赵凌燕等.用Apache Axis开发web服务.计算机应用2004 24f05):140-03. 。 4.邹燕飞 .马元元.用 Apache Axis1.2构建 web服务.电脑知识与技术 2006(O5】-0078-01 (上接第 79页) 展.新一代功能更强大、安全性更强的防火墙已经问世 ,这个阶 段的防火墙已超出了原来传统意义上防火墙的范畴,演变成一 个全方位安全技术集成系统.我们称之为第四代防火墙。它可以 抵御 目前常见 的网络 攻击 手段 .如 IP地址欺 骗 、特洛伊 木马攻 击、Intemet蠕虫、口令探寻攻击 、邮件攻击等。 但俗话说”道高一尺.魔高一丈”,功能再强大的防火墙也需 要人工配置一些安全策略。由于使用者网络安全水平的不同,黑 客是可 以利用防火墙安全策略的漏洞绕过 防火墙实现对 主机的 攻击 防火墙的日志会详细记录黑客人侵的手段和过程,所以在 遭到黑客攻击之后,我们应当根据防火墙的日志详细记录,有的 放矢地修改防火墙的安全策略,使它能够应对新出现的攻击方 式.使防火墙的安全策略 日臻完善。 参考文献 : 1.【美】Eric cole.苏雷等译.黑客攻击透析与防范【M】.北京.电子工业出版 社 .2002. 2.精 英科技 .系统安全与黑客防范手册 .中国电力 出版社,2002 3.肖军模 .网络信息安全与对抗 .解放军出版社 ,2003,9 维普资讯 http://www.cqvip.com
本文档为【如何用AXIS2开发WEB服务_IT168文库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_079160
暂无简介~
格式:pdf
大小:122KB
软件:PDF阅读器
页数:0
分类:互联网
上传时间:2014-04-23
浏览量:16