还剩2页未读,继续阅读
文本内容:
WebServi__的概念及其实现__yi5 转贴自yi5_yuyu __数152 文章录入yuyu3007概述本文介绍了Web Servi__的一些重要概念以及一个Web Servi__的实现-Apache__推出的AxisWeb Servi__的定义Web Servi__是描述一组操作的接口,这些操作可以通过标准的XML消息在网络上进行访问可以这样理解上面的定义Web Servi__可看作是一些模块化的应用程序,这些应用程序能在Web上描述、发布、定位和调用Web Servi__的体系结构Web Servi__的体系结构是面向服务的体系结构(SOA)附件1112083671836-
1.jpg29Khttp://___.j__aresearch.org/members/j2eespecialist/1112083671836-
1.jpg\t_blank 附件是面向服务的体系结构(SOA)从图1可以看出,SOA结构__有三种角色
① Servi__ provider(服务提供者)对外提供服务,并且通过注册来发布服务信息
② Servi__ broker(服务代理)提供服务的发布和定位功能
③ Servi__ requester(服务请求者)通过服务代理查询所需服务,并通过服务提供者绑定服务Web Servi__使用的协议和规范Web Servi__通过哪些协议和规范来描述、发布、定位和调用服务呢?我们可以通过下面的Web Servi__互操作协议栈结构图表得知 Web Servi__互操作协议栈 服务发现 UDDI 服务描述(WSDL) 服务调用SOAP 消息编码 XML 传输网络层HTTP TCP/IP 上图Web Servi__互操作协议栈结构服务发现通过UDDI规范提供用于描述某项服务的商业结构,包括业务、服务和技术规范三个部分服务描述描述服务提供的功能和调用方法信息,通过WSDL规范提供服务调用使用SOAP协议在服务提供者和服务请求者之间传递SOAP消息来调用Web服务,SOAP定义了请求和响应消息的格式,SOAP建立在XML之上,定义了一种跨系统平台的信息交换的简单包装方法绑定于HTTP之上的SOAP协议,可以跨语言、跨操作系统进行远程过程调用(RPC),实现了编程语言和系统平台的无关性消息编码SOAP用XML将消息编码,XML提供了跨平台的数据库编码和__方法传输网络层采用了Web上广泛使用的HTTP协议传输消息,适应Internet环境,能顺利通过代理和防火墙(理论上可以采用其它协议,如__TP、FTP)SOAP简介SOAP是一个应用程序间的基于XML的通信工具和规范它有三个主要方面XML-envelope为描述信息内容和如何处理内容定义了框架;将程序对象编码成为XML对象的规则;执行远程过程调用(RPC)的约定Axis的概念Axis总体上是一个SOAP引擎,它提供了创建SOAP客户机、服务器端、__SOAP的基本框架Axis是SOAP的后续版本(该项目的前身是IBM的“SOAP4J”),我介绍的Axis版本是Axis
1.1 for J__a版,这个版本是j__a的Web Servi__实现Axis除了提供SOAP引擎之外,它还是一个可插入到servlet引擎中的__的服务器,并且还提供了以下工具将WSDL转化为j__a类的工具和一个TCP/IP数据包监视工具Axis
1.1 for J__a版本相比它的以前版本有了重大的改进,这些改进让Axis灵活性更好、管理更方便、同时支持SOAP和W3C中XML的新规范,Axis
1.1 for J__a提供了以下重要特性1 速度提高Axis
1.1 for J__a版本使用了SAX(__驱动)来解析XML文档2 灵活Axis
1.1 for J__a版允许用户灵活地定制扩展Axis的功能,用户可以加入他们想要增加的任何特性个性化的信息头处理、扩展的系统管理和其他特性3 稳定性提高Axis中定义了一套稳定的发布接口(publicshed inte_____),他们不会随着axis的更新而更新,除非相关的标准发生了改变,这样减少了axis新发布版本中发生重构时对用户的影响比如axis中处理J__A-RPC的接口就是一套稳定的发布接口,它支持J__a-RPC
1.1规范,除非J__a-RPC规范发生改变,否则这些接口都不会发生变化4 提供面向组件的部署用户可以轻松地建立可重用的网络环境来实现处理工作的一些模式,或者将这些发布给自己的合作伙伴5 提供一个简洁的传输抽象框架Axis
1.1版本中的网络传输设计中使用__的、简化的抽象,SOAP消息的发送方和接收方可以使用多种传输协议比如__TP、FTP或者消息中间件等,Axis
1.1版本的核心引擎完全是__于传输协议的,从而使用户可以更加灵活地选择用何种协议来传输6 支持WSDL
1.1Axis
1.1版本支持WSDL
1.1版本,用户通过使用这个特性可以非常简单地创建访问远程的web服务需要用到的类文件,也可以使用该特性从你的j__a类中自动生成正确的WSDL文档Axis
1.1 for J__a的__配置下载Axis首先,我们必须下载axis的最新版本,目前的最新版本是
1.1,可以到http://ws.apache.org/axis/download.cgihttp://ws.apache.org/axis/download.cgi下载,他提供了tar.gz和.zip版本可供下载,请根据您的操作系统平台的选择不同的下载文件,我们这里选择下载支持windows平台的二进制版本axis-1_
1.zip__Axis应用Axis__Web Servi__s,你需要有一个支持Servlet的服务器引擎,比如广为人知的Tomcat因为后面的文章中我将介绍如何将EJB作为Web Servi__部署在Axis上,所以我这里以Web 应用服务器weblogic
8.1为例说明如何__Axis首先将下载的Axis软件包axis-1_
1.zip解压缩,可以看到如下图所示的目录结构附件1112084151751-
1.jpg44Khttp://___.j__aresearch.org/members/j2eespecialist/1112084151751-
1.jpg\t_blank 然后启动weblogic
8.1服务(即运行对应的do__in上的startWeblogic.cmd),打开ie浏览器进入weblogic的控制台,然后__Deployments-Web Application Modules,选择“Deploy a new Web Application Module”,选择上面的目录结构中“webapps”目录下的“axis”目录进行发布即可配置Axis运行Axis时需要如下组件包axis.jarjaxrpc.jarsaaj.jarcommons-logging.jarcommons-discovery.jarwsdl4j.jar符合JAXP-
1.1的XML处理器这些组件包在axis软件包中“lib”目录下在运行axis前请将这些组件包加入到系统变量CLASSPATH中,或者配置一系列的系统变量,将这些组件包加入到这些系统变量中,需要配置的系统变量如下所示AXIS_HOME = Axis解压缩后所在的目录\webappls\axisAXIS_LIB = %AXIS_HOME%\libAXISCLASSPATH=%AXIS_LIB%\axis.jar; %AXIS_LIB%\commons-discovery.jar; %AXIS_LIB%\commons-logging.jar; %AXIS_LIB%\jaxrpc.jar; %AXIS_LIB%\saaj.jar; %AXIS_LIB%\log4j-
1.
2.
8.jar; %AXIS_LIB%\xml-apis.jar; %AXIS_LIB%\xer__sImpl.jar;需要注意的是,xer__sImpl.jar只能设置一个,如果在你的系统中有多处地方都设置了这个文件,请删除之,只能保留一个验证Axis是否正确____配置完毕后,应测试一下Axis是否可以正确运行启动Weblogic
8.1服务器,在浏览器中访问http://localhost:7001/axishttp://localhost:7001/axis,在显示的axis__页面中__validate进入校验axis__是否成功的页面,如果页面显示有错误,则需要回头检查一下相关配置是否正确,如果浏览器页面能正确显示出系统组件、属性等参数配置信息,则表示__成功,如下图所示附件1112084300195-
1.jpg198Khttp://___.j__aresearch.org/members/j2eespecialist/1112084300195-
1.jpg\t_blank 现在可以开始__你的Web Servi__s应用了 。