Axis安装到Tomcat

    使用axis我们先来配置相应的环境,我来转载一篇文章介绍环境的配置,我是根据他的路子走的,配置成功并且可以运行,版本不同应该不会有太大的问题,我的各个版本就跟他不一样,目前没有出现问题。非常的感谢这位老兄。
1
Axisaxis-1_3axis-bin-1_3.zip
2
Tomcatjakarta-tomcat-5.0.28jakarta-tomcat-5.0.28.exe
3
JDKjdk1.5.0_06jdk-1_5_0_06-windows-i586-p.exe
4
JREjre1.5.0_06jdk-1_5_0_06-windows-i586-p.exe
先去SUNApache网站把上述软件找好,版本最好一致,开源软件的版本兼容性不佳,所以不一致的话我不能保证述的方法可行,接来从最基本的开始:

一.安装Java环境
   
通过jdk-1_5_0_06-windows-i586-p.exe(前几天在SUN网站上看到现在最新的好像是是jdk-1_5_0_10-windows-i586-p.exe,嗯,如果用这个的话应该也可以)安装jdk1.5.0_06jre1.5.0_06,注意首先会安装JDK,然后接着会安装JRE,必须分别给它们选两个不同的路径来装,如C:\jdk1.5.0_06C:\jre1.5.0_06


二.安装Tomcat
   
通过jakarta-tomcat-5.0.28.exe(最新都出Tomcat 6.0.2-beta了,不知道行不行)安装Tomcat 5.0.28,记得是要选择安装路径、系统JRE路径、管理员用户名和密码、Tomcat端口号等等,例如:C:\Tomcat5.0C:\jre1.5.0_06adminadmin8080(端口别被别的软件占用,否则换一个)。


三.Axis集成Tomcat
   
先不要启动Tomcat服务,解压axis-bin-1_3.zip,将\axis-bin-1_3\axis-1_3\webapps目录axis整个文件夹拷贝Tomcat安装路径(例如C:\Tomcat5.0webapps文件夹。再把Tomcat安装路径(例如C:\Tomcat5.0刚拷贝的axis目录WEB-INF\lib目录的所有文件拷贝Tomcat安装路径common\lib目录中。在jdk1.5.0_06lib目录(例如C:\jdk1.5.0_06\lib有一个tools.jar文件,把它拷Tomcat安装目录(例如C:\Tomcat5.0)common\lib目录


四.配置系统环境变量
   
通过我的电脑——属性——高级——环境变量在面的系统变量中添加如一些项:
1.
变量名TOMCAT_HOME 
变量值C:\Tomcat5.0
2.
变量名AXIS_HOME 
变量值%TOMCAT_HOME%\webapps\axis
3.
变量名AXIS_LIB
变量值%AXIS_HOME%\WEB-INF\lib
4.
变量名AXISCLASSPATH
变量值%AXIS_LIB%\axis.jar;%AXIS_LIB%\axis-ant.jar;%AXIS_LIB%\axis-schema.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\log4j-1.2.8.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\wsdl4j-1.5.1.jar; %AXIS_LIB%\activation.jar;%AXIS_LIB%\mail.jar;%AXIS_LIB%\xmlsec-1.3.0.jar;
5
.变量名CLASSPATH
变量值%AXIS_LIB%\axis.jar;%AXIS_LIB%\axis-ant.jar;%AXIS_LIB%\axis-schema.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\log4j-1.2.8.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\wsdl4j-1.5.1.jar; %AXIS_LIB%\activation.jar;%AXIS_LIB%\mail.jar;%AXIS_LIB%\xmlsec-1.3.0.jar;
6
.变量名JAVA_HOME
变量值C:\jdk1.5.0_06\bin
   
注意保证以上变量值中提及的相应文件都在相应目录。特别的是,在axis-bin-1_3.zip中不包括activation.jarmail.jarxmlsec-1.3.0.jar3个文件,需要去SUNApache主页单独载,分别是jaf-1_0_2-upd2.zipjavamail-1_4.zipxml-security-bin-1_3_0.zip。(版本不同不知道行不行)


五.检查是否安装成功 
   
启动Tomcat服务,使用web浏览器访问http://localhost:8080/axis/,可以看到Hello! Welcome to Apache-Axis.的提示信息,再单击Validation链接转到http://localhost:8080/axis/happyaxis.jsp,如果看到提示The core axis libraries are present.The optional components are present. 就表示安装Axis成功了。否则根据提示提供的链接,载对应的文件,拷贝Tomcat目录Webapps里面的axis文件夹WEB-INFlib目录中,同时Tomcat安装路径common目录lib中也要拷贝,再重新访问http://localhost:8080/axis/happyaxis.jsp,直到提示The core axis libraries are present.The optional components are present.表示安装Axis成功!(怎么还有一句Note: Even if everything this page probes for is present, there is no guarantee your web service will work, because there are many configuration options that we do not check for. These tests are necessary but not sufficient啊!)

首先我们来检测一我们环境配置的是否成功,打开命令行,输入命令java org.apache.axis.wsdl.WSDL2Java回车,(别告诉我你java虚拟机的环境变量还没配),如果不报异常的话,应该出现很多帮助信息,比如-p是什么意思,-s是什么意思(当然都是英文的),那么bingo!恭喜你,环境ok!如果报什么类没有找到啊,什么的,不好意思,再把环境搞一搞。
这个搞好之后,我们就可以根据xxx.wsdl文件来生成客户端和服务端代码了。

生成服务端代码:
   
先找个盘建个你看着顺眼的文件夹吧,我就是在D盘建了个叫“temp”的文件夹,好,命令cd d:\temp,然后看到光标闪啊闪(D:\temp>)把xxx.wsdl文件考到temp,然后接着在那个命令行输入java org.apache.axis.wsdl.WSDL2Java -o Server -d Session -s -S true xxx.wsdl其实就是这个意思:java org.apache.axis.wsdl.WSDL2Java -o [文件夹名] -d Session -s -S true [wsdl文件名],回车之后我们应该发现temp多了个Server文件夹,里面就是服务端代码了。如果报错的话有可能是wsdl文件格式有问题等。


生成客户端代码:
java org.apache.axis.wsdl.WSDL2Java -o Client -d Session -S true xxx.wsdl
注意我们的“-s”没有了。回车之后我们应该发现temp多了个Client文件夹,这些参数怎么用可以打java org.apache.axis.wsdl.WSDL2Java看帮助。

建服务端:

      面我们打开我们使用的盗版的Myeclipse,新建一个java项目,先建个服务端吧,来个默认文件夹叫src,项目名字随便你起。
把刚temp\Server面的文件拷到src里,然后项目refrash,哇塞!好多警告和错误,之所以出现很多错误是因为我们没有把axis相关的包导入到项目中,好,我们在项目的根目录建一个叫“lib”的文件夹,然后把Tomcat 5.0\webapps\axis\WEB-INF\lib的所有jar包都拷到自己项目的lib里,然后在eclipse里右键你的项目选择buildpath-configure buildpath-Libraries-addExternalJars 把你项目lib里的所有jar包都倒进来,refrash你的project,应该只剩警告没有错误了。
这个是服务器端,我们应该可以看到implschemas这两个包,schemas包中应该是我们wsdl文件中描述的数据类型的类,impl包中应该是跟服务相关的类和接口了,我们需要关注的是impl包中的xxxSoapBindingImpl.java类,打开应该可以看到很多方法,返回的都是wsdl文件中描述的方法,当然返回值都是wsdl描述要求的返回值,但是目前都是返回null,这就是我们要实现的地方了。我们可以再建个business包把方法都实现了,然后在xxxSoapBindingImpl.java中调用你实现的方法(就是把那些返回是null的都替换成具体的业务实现具体的值)这样服务器端就写好了。服务器端写完之后我们就可以通过axis把这个服务给发布了。我们先把写的服务端打成jar包,项目右键-导出-jarlib的东西可以不用导,服务端已经有了。打好之后把jar包拷到axis\WEB-INF\lib里面,然后点到你的项目文件夹点进->src->impl文件
夹里应该有个deploy.wsdd文件,把它考到刚才建的temp里面然后打开命令行,进到temp准备执行部署命令,执行命令之前先把tomcat启动起来,启动之后就可以执行java org.apache.axis.client.AdminClient deploy.wsdd 命令来部署了,部署成功会有相应的提示,然后我们Tomcat 5.0\webapps\axis\WEB-INF会发现多了个server-config.wsdd文件,证明你已经部署成功一半了,然后我们重新启动tomcat
eclipse里启动或者startup.bat启动,这样可以看有没异常)如果没有异常那么部署应该成功,打开http://localhost:8080/axis/ list,你的服务应该在里面了。

建客户端:

现在我们来写客户端调用刚才发布的服务,还记得刚temp面的client文件夹么,里面是我们一开始生成的客户端代码,现在派上用场了。新建项目,考代码,导lib包,这个都跟做服务端时一样,这里不做赘述。搞好之后我们会发现项目中也有implschemas两个包,同理我们现在也关注impl包中的xxxServiceLocator.java,在调用服务端的时候我们要通过它来获得可以使用的对象,建个test包,写个Test类在main方法里写如几句
xxxServiceLocator xxx= new xxxServiceLocator();

xxx.setxxxEndpointAddress("http://127.0.0.1:8080/axis/services/xxx");//你的wsdl服务地址
try {

  服务用的类类实例名  = xxx.getxxx();
//
通过xxxServiceLocator的实例可以获得我们要调用的服务端的实例面就可以使用服务端实现的方法了
使用时会抛如异常
  } catch (ServiceException e) {

   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (RemoteException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } 

好了,结束了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值