首页 > 学技术 > 技术网文 > Web服务器 > 正文

[精彩] Tomcat5.0.28下AXIS完全安装手册


来源 chinaunix.net 酷勤网整理

IPADDR(漂,一直漂,BCOMCN,ASPBIZ 马甲可真多)原创,转载请注明. 

网上有一些AXIS的安装文档,不是很详细,而且,我按网上的资料安装得不是很成功,老是报错,可能是因为使用了较新版本的Tomcat,AXIS. 

经过多番努力,终于配置成功,把安装过程和心得和大家分享一下. 

一.简介 
什么是SOAP?SOAP是一个应用程序间的基于XML的通信工具和规范.SOAP最初由MicroSoft和Userland公司开发,已经演化了好几个版本,当前的版本SOAP1.1正飞速发展.W3C的XML协议工作组正努力把它发展为一个真正的开发的标准.SOAP1.2草案已经发布,它能澄清1.1版规范的容易混淆的地方. 

什么是Axis?Axis总体上是一个SOAP引擎,但又不仅仅是个引擎,它还:1)是一个简单的独立的服务器2)是一个可插入到servlet引擎(如Tomcat)中的服务3)可扩展的支持WSDL4)能根据WSDL产生JAVA文件/类5)包括一些例子程序6)包括一个可以监控TCP/IP包的工具 

Axis起源于IBM的SOAP4J,是Apache SOAP的第三代产品,相对于以前的版本,它有如下特性:1)快速,它使用了基于事件的SAX解析机制.2)灵活,用户可以灵活定制扩展.3)稳定,接口将会变动很小.4)基于组件开发.5)支持WSDL1.1 

二.准备 
1.安装Tomcat5.0.28,这是当前稳定版本.Tomcat运行在80端口.访问http://localhost/检查Tomcat是否安装成功. 
(Tomcat+Apache+Mysql的整合安装,详见另外一篇.) 
2.下载AXIS: 
官方站点:http://xml.apache.org/axis/index.html 
下载软件:axis-bin-1_2_1.tar.gz 
3.下载相关包: 
a.mail.jar 下载地址:http://java.sun.com/products/javamail 
b.activation.jar 下载地址:http://java.sun.com/products/javabeans/glasgow/jaf.html 
c.xerces.jar 下载地址:http://xml.apache.org/xerces-j/index.html 
d.xmlsec-1.2.1.jar 下载地址:http://xml.apache.org/security/ 

三.安装 
1.将四个相关包,全部拷到<CATALINA_HOME>;/common/lib目录(Tomcat安装目录下的common/lib)下 
2.解压axis-bin-1_2_1.tar.gz,将压缩包里的webapps/axis拷到网站根目录下(如果Tomcat是默认配置,那就是<CATALINA_HOME>;/webapps/ROOT目录). 
3. 
修改Tomcat的配置文件server.xml(<CATALINA_HOME>;/conf/server.conf) 
在</Host>;前加入: 
<Context path="/axis" docBase="C:\Program Files\Apache Software Foundation\Tomcat\webapps\ROOT\axis" debug="0" reloadable="true" >; </Context>; 
(docBase里是你的实际axis存放的目录) 
注意,此步至关重要,AXIS的安装文档中没有提到此步,导致很多人安装不成功. 
如果没有此步,访问http://localhost/axis时,提示如下错误: 
Can't find bundle for base name i18n, locale en_US(zh_CN) 
表面是上看i18n国际化的问题,但既使i18n.properties,i18n_zh_cn.properties存在,也无法找到. 
网上很多朋友安装到此,无法继续下去,我也找了很多资料,都没有解决.后来查看Tomcat的文档,猜测是Tomcat配置的问题,经测试,终于成功. 
可能Tomcat的前期版本,不需此设置.没有测试过. 
另外,也可以将axis/WEB-INF/classes/*,axis/WEB-INF/lib/*的所有文件,拷到<CATALINA_HOME>;/common/lib/这个方法比较麻烦. 
注:AXIS客户端,需要拷贝axis/WEB-INF/lib/*到<CATALINA_HOME>;/common/lib/ 

四.测试 
重新启动Tomcat. 
1.访问:http://localhost/axis 
点击:Validation - Validate the local installation's configuration测试是否有错. 
2. 
写个小程序: 
public class HelloService 

public String sayHello(String username) 

return "Hello:"+username; 


另存为axis目录下HelloService.jws 
再能过WEB访问: 
http://loalhost/axis/HelloService.jws 
http://loalhost/axis/HelloService.jws?method=sayHello&amp;meter=ipaddr 


另外,如果是Apache+Tomcat整合在一块,以上配置后,还需要更改Apache的配置,在httpd.conf中加入: 
JkMount /axis/* ajp13 
通过Apache可以访问axis的Servlet



 ipaddr 回复于:2005-09-29 22:45:10

放JAVA版,没人看,只好放这了.


 ipaddr 回复于:2005-09-29 22:47:44

版主,只是给个精彩呀,

给个原创哦.

:)


 ipaddr 回复于:2005-09-29 22:49:18

Apache Axis是Apache WebService项目中的子项目,其最初起源于IBM的"SOAP4J",应该属于最早的一批用于构造基于SOAP应用的Framework。 

目前Apache Axis已经发展到了第三代,其核心是一个SOAP处理器,用于开发包括客户端,服务器端,SOAP Gateway等各种应用。事实上Apache Axis在了1.0版后,其发行版本还包括了完整的J2EE服务器插件, WSDL支持和生成,TCP/IP监视器等组件,从这个意义上来说Apahce Axis已不仅仅是个SOAP框架了,它包含了除了UDDI外对整个Web Service协议栈(Protocol Stack)的支持。 

对大多数关心Macromedia产品的人来说,Macromedia是Axis小组的核心成员之一,他们在几乎所有J2EE服务器端的产品线中包含了Axis,也就是说Macromedia对WebService的支持是通过Apache Axis实现的,这其中包括了JRun, Flex, ColdFusion。即便是Flash Remoting,由于其核心还是SOAP,所以也是使用了Axis的SOAP框架。 

和.NET的WS不同,Axis是一个非常易于扩展的体系结构,其设计的核心思想是建立一个数据处理的管道,通过把handler编织成一条处理链从而无限扩展其可能性。打个比方,在输入部分开发人员既可以编写基于HTTP Basic Authentication的用户验证模块也可以插入SOAP Auth模块用于验证请求,而输出部分既可以通过XML binding把结果输出为SOAP XML也可以象Flash Remoting那样把结果输出成binary格式。 

同时Axis也提供了所有的处理模块,使得用户能在最快的时间把服务器组件发布成WS.总的来说Axis有以下几个特点: 


速度 - Axis 使用 SAX 而不是 DOM 来处理XML请求,所以速度上有很大的改善。 
灵活性 - 刚才也提到了,Axis的体系结构是一个全开放式的处理器,所以扩展模块极为方便。面向组件的发布方式 - 处理链上可重复使用组件来完成类似的操作。 
Transport 框架 - Axis的核心和底层的transport完全分离,也就是说不管WS的Transport是HTTP, FTP, MAIL, MESSAGE QUEUE,只要插入对应的Transport模块即可,而不需改动其他部分。 
WSDL1.1支持 - 可自动由Java Object生成WSDL


 HonestQiao 回复于:2005-09-29 23:14:33

暂时放精彩,我需要考证属实之后才能给原创


 ipaddr 回复于:2005-09-30 10:54:29

:0

谢谢.


 siyantianji 回复于:2006-04-12 10:00:55

搂主,我按照你的方法设置了一遍,但是还是没有成功,提示如下:

HTTP Status 404 - /axis/

type Status report

message /axis/

description The requested resource (/axis/) is not available.


Apache Tomcat/5.5.16

不知道是怎么回事,希望能够给予解答啊!!!
先谢了啊!!


 xxjoyjn 回复于:2006-04-12 10:02:54

谢谢,顶顶


 siyantianji 回复于:2006-04-12 12:02:54


修改了一下,重新测试http://localhost/axis 又报了个新的错误!!!
帮我看一下,怎么修改啊!!!!
HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: Provider Ut&#65533;&#65533;)&#65533;&#65533;X&#65533;4p~3~f&#65533;&#65533;zN&#65533;6&#65533;1&#65533;L&#65533;l4&#65533;&#65533;&#65533;Dj&#65533;{6&#65533;/VNc&#65533; not found
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:272)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

javax.xml.parsers.FactoryConfigurationError: Provider Ut&#65533;&#65533;)&#65533;&#65533;X&#65533;4p~3~f&#65533;&#65533;zN&#65533;6&#65533;1&#65533;L&#65533;l4&#65533;&#65533;&#65533;Dj&#65533;{6&#65533;/VNc&#65533; not found
javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:104)
org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:88)
org.apache.jasper.compiler.JspConfig.processWebDotXml(JspConfig.java:76)
org.apache.jasper.compiler.JspConfig.init(JspConfig.java:197)
org.apache.jasper.compiler.JspConfig.findJspProperty(JspConfig.java:249)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:112)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.16 logs.

Apache Tomcat/5.5.16


 lnfxcf 回复于:2006-12-28 09:34:55

我在Tomcat 5.5\conf\Catalina\localhost\下配置了一个虚拟路径的文件sms.xml。
在运行的时候,报路径找不到,而且,打出的信息之中,把空格打印成20%
java.io.FileNotFoundException: D:\test\Server%20Management\Web\WEB-INF\classes\xml\machinetable (系统找不到指定的路径。)error

不知道什么原因,为什么不能有空格?
我换到一个没有空格的目录,页面可以访问了!请教怎么解决?


 xxd1019 回复于:2007-01-26 11:32:11

9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=620370
转载请注明作者名及原文出处



收藏本页到: