Tomcat5.0.28下AXIS完全安装手册

Tomcat5.0.28下AXIS完全安装手册

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&meter=ipaddr


另外,如果是Apache+Tomcat整合在一块,以上配置后,还需要更改Apache的配置,在httpd.conf中加入:
JkMount /axis/* ajp13
通过Apache可以访问axis的Servlet
放JAVA版,没人看,只好放这了.
版主,只是给个精彩呀,

给个原创哦.

:)
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
暂时放精彩,我需要考证属实之后才能给原创
:0

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

HTTP Status 404 - /axis/

type Status report

message /axis/

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


Apache Tomcat/5.5.16

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

修改了一下,重新测试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��X�4p~3~f��zN�6�1�L�l4���Dj�{6�/VNc� 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��X�4p~3~f��zN�6�1�L�l4���Dj�{6�/VNc� not found
        javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:104)
        org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:8
        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
我在Tomcat 5.5\conf\Catalina\localhost\下配置了一个虚拟路径的文件sms.xml。
在运行的时候,报路径找不到,而且,打出的信息之中,把空格打印成20%
java.io.FileNotFoundException: D:\test\Server%20Management\Web\WEB-INF\classes\xml\machinetable (系统找不到指定的路径。)error

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