免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1591 | 回复: 0
打印 上一主题 下一主题

Axis简介 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-06 18:11 |只看该作者 |倒序浏览

                ********************
SOAP简介
企业系统内部各个系统之间的信息交换一直是一个难题,在过去有DCOM、CORBA等解决方案,但都不是很完美,不是太复杂就是有缺陷。现在则较流行SOAP(全称:Simple Object Access Protocol,简单对象访问协议)。
SOAP和Web Service和Apache SOAP这些新概念(应该也不算新了)常搞的人头昏。我是这么理解的,Web service(也称Web服务)是一个大的概念范畴,它表现了一种设计思想。SOAP是Web service的一个重要组成部份,如果把Web service比喻成Internet,那么SOAP就可以比喻成TCP/IP。SOAP是一种协议而非具体产品,微软也有自己的SOAP实现产品,而Java下比较流行的SOAP实现产品就是Apache SOAP,不过它的下一个版本已经改名成AXIS了。
SOAP是通过XML文件来做为数据转输的的载体,走HTTP的线路,一般企业的防火墙都开放HTTP的80端口,所以SOAP不会被防火墙阻断,这算是SOAP的一个优点。
信息转输的双方都要求支持SOAP服务,因为XML文件发过去,则对方需要有SOAP服务来接收,然后对方会有反馈也是XML文件,这时你也需要安装SOAP服务来接收,
SOAP是一个基于XML的用于应用程序之间通信数据编码的传输协议。最初由微软和Userland
Software提出,随着不断地完善和改进,SOAP很快被业界广泛应用,目前完全发布版本是1.1。在其发展过程中,W3C
XML标准工作小组积极促成SOAP成为一个真正的开放标准。在写作此文档之时,SOAP1.2草案已经发布,1.2对1.1中相对混乱的部分做了改进。
SOAP被广泛作为新一代跨平台、跨语言分布计算Web
Services的重要部分。
2. 什么是Axis

Axis是Apache组织推出的SOAP引擎,Axis项目是Apache组织著名的SOAP项目的后继项目,目前最新版本是采用Java开发的1.1版本,C++的版本正在开发之中。Axis
v1.1软件包可以从

[color="#000080"]http://ws.apache.org/axis/dist/1_1/
下载得到。
但是Axis不仅仅是一个SOAP引擎,它还包括:
     
一个独立运行的SOAP服务器
     
一个servlet引擎的插件,这个servlet引擎可以是Tomcat
     
对WSDL的扩展支持
     
一个将WSDL的描述生成JAVA类的工具
     
一些示例代码
     
还有一个监控TCP/IP包的工具
二、Axis的安装

应用Axis开发Web
Services,你需要安装如下软件:
1.JDK1.4.2
2.一个支持Servlet的服务器引擎,比如广为人知的Tomcat。

[color="#000080"]当安装好Tomcat之后,只需将下载的Axis软件包解压缩,将其中的“webapps”目录下的“axis”目录整个拷贝到Tomcat安装目录下的“webapps”目录下即可。
[color="#000080"]三、Axis的配置
Axis基于Java开发,可以部署于多种操作系统,使用前需要配置一系列的系统变量,在此假定你已经在本机上装好了Tomcat
4.0以上的版本,需要配置的系统变量如下表所示:

CATALINA_HOME
C:\Tomcat_4_1

[color="#000080"](此处应为Tomcat的安装位置,注意路径名中不要有空格)
AXIS_HOME
%CATALINA_HOME%\webapps\axis

AXIS_LIB
%AXIS_HOME%\lib

AXISCLASSPATH
%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%\xercesImpl.jar

CLASSPATH 中加入:
%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%\xercesImpl.jar

[color="#000080"]四、Axis的测试
[color="#000080"]安装配置完毕后,应测试一下是否Axis可以正确运行了。
[color="#000080"]  启动Tomcat服务器,在浏览器中访问
[color="#000080"]http://localhost:8080/axis/happyaxis.jsp
,如果页面显示有错误,则需要回头检查一下相关配置是否正确,如果浏览页面能正确显示出系统组件、属性等参数配置信息,则表示安装成功。现在可以开始开发你的Web
Services应用了。

五、服务的发布
Axis提供了两种服务发布方式,一种是即时发布(Instant
Deployment),一种是定制发布(Custom
Deployment)。

1. 使用即时发布 Java Web
Service(JWS)

[color="#000080"]  对即时发布的支持是Axis的特色之一,使用即时发布使用户只需有提供服务的Java类的源代码,即可将其迅速发布成Web服务。每当用户调用这类服务的时候,Axis会自动进行编译,即使服务器重启了也不必对其做任何处理,使用非常简单快捷。
  使用即时发布首先需要一个实现服务功能的Java源文件,将其扩展名改为.jws(Java
Web
Service的缩写),然后将该文件放到“……\webapps\axis”目录下即可。
     
在此给出一个从英里到公里的长度单位转换的服务,其源码如下:

[color="#000080"]文件Distance.jws
public class
Distance
{
     
public double convertMile2Kilometre( double mile )
     
{
return mile *
1.609;   
//实现英里到公里的距离转换
     
}
}

[color="#000080"]将其放到“……\webapps\axis”目录,通过访问
[color="#000080"]http://localhost:8080/axis/Distance.jws?wsdl
可以看到这个服务的WSDL描述文件,这说明Distance服务被成功发布了。描述的WDSL代码如下:
-

[color="#000080"]http://192.168.0.26:8080/axis/Distance.jws
[color="#000080"]" xmlns="
[color="#000080"]http://schemas.xmlsoap.org/wsdl/
"  
   
xmlns:apachesoap="

[color="#000080"]http://xml.apache.org/xml-soap
[color="#000080"]" xmlns:impl="
[color="#000080"]http://192.168.0.26:8080/axis/Distance.jws
[color="#000080"]" xmlns:intf="
[color="#000080"]http://192.168.0.26:8080/axis/Distance.jws
[color="#000080"]" xmlns:soapenc="
[color="#000080"]http://schemas.xmlsoap.org/soap/encoding/
[color="#000080"]" xmlns:wsdl="
[color="#000080"]http://schemas.xmlsoap.org/wsdl/
[color="#000080"]" xmlns:wsdlsoap="
[color="#000080"]http://schemas.xmlsoap.org/wsdl/soap/
[color="#000080"]" xmlns:xsd="
[color="#000080"]http://www.w3.org/2001/XMLSchema
">
-
   
   
-
   
   
-
-
   
   
   
   
-
   

[color="#000080"]http://schemas.xmlsoap.org/soap/http
" />
-
   
-
   

[color="#000080"]http://schemas.xmlsoap.org/soap/encoding/
[color="#000080"]" namespace="
[color="#000080"]http://DefaultNamespace
" use="encoded" />
   
-
   

[color="#000080"]http://schemas.xmlsoap.org/soap/encoding/
[color="#000080"]" namespace="
[color="#000080"]http://192.168.0.26:8080/axis/Distance.jws
" use="encoded" />
   
   
   
-
-
   

[color="#000080"]http://192.168.0.26:8080/axis/Distance.jws
" />
   
   
   

[color="#000080"]需要注意的是:JWS的web服务发布是一个很简单的Web服务发布方式,在页面中你不能使用包,而且由于代码是在运行期被编译的,所以在部署之后,你也很难找到错误所在。
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/24141/showart_678062.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP