由于要在公司以前的项目中集成webservie以供公司的其他客户端调用,故今天在自己机子上安装并并配置axis。
首先是开发环境:jdkj2sdk1.4.1_02,tomcat5.0.28,axis1.4
关于将axis安装到tomcat下网上有很多,这里就不表述了。重点说下在时遇到的一些个问题。
首先在axis压缩包中的axis工程拷贝到tomcat的webApps目录后,访问
http://localhost:端口号/axis,在这个地址中点击validate连接查看是否有所需要加入的包。我在此
图上可以看见有一个必须包和两个可选包,按照图上提示下载包文件并将以下activation.jar、mail.jar、tools.jar,xalan.jar,xmlsec-1.4.3.jar(tools可在jdk1.4的安装目录中找到)文件加入到axis项目的lib目录中。
然后按照网上提供过的简单例子写个例子,通过wsdd发布。写好例子并编写号deploy.wsdd文件,将例子的class文件和wsdd文件放到axis项目的WEB-INF目录下。通过cmd打开window控制台到axis项目的WEB-INF目录下,通过java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd处理wsdd文件。在此遇到如以下问题,解决方法如下:
Exception in thread "main " java.lang.NoClassDefFoundError:org/w3c/dom/Node--------请加入dom.jar;
Unsupported major.minor version--------------------检查你的jdk版本,见下面括号内容
(Unsupported major.minor version 50.0
Unsupported major.minor version 49.0
Unsupported major.minor version 48.0
产生此问题的主要原因是:javac和java的版本不一致
-------------------------------------------------------------------
其中,48,49,50是Java编译器内部的版本号
Unsupported major.minor version 50.0 对应于 JDK1.6(JRE1.6)
Unsupported major.minor version 49.0 对应于 JDK1.5(JRE1.5)
Unsupported major.minor version 48.0 对应于 JDK1.4(JRE1.4)
解决方法:打开CMD,运行如下java -version看是否和你的jdk相匹配,如果不匹配,请检查你的path系统环境变量。当你在安装某些软件如oracle等时,这些软件会将其使用的jdk配置在你的jdk版本前如:d:\oracle\product\10.1.0\Db_2\bin;G:\oracle\product\10.1.0\Db_2\jre\1.4.2\bin\client;d:\oracle\product\10.1.0\Db_2\jre\1.4.2\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\Program Files\QuickTime\QTSystem\;c:\Program Files\Common Files\Adobe\AGL;c:\Program Files\Java\jdk1.6.0_07\bin;c:\Program Files\Java\jre1.6.0_07\bin;
此时只需将你的jdkPATH提前,问题就解决了。)
java.lang.NoClassDefFoundError: org/xml/sax/SAXException-----------从jdk的lib下拷贝rt.jar到axis的lib目录下
当axis 编译deploy wsdd时 报401错误---------请检查你的tomcat的配置的端口是否是8080如不是将上面的编译命令改为如下:
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -p8088 deploy.wsdd(8088是我的tomcat的端口号)
---------------------------
注意,如果不是在axis的webapps中axis项目话(即你自己的建webservice项目),编译wsdd文件的命令内容为:java -Djava.ext.dirs=lib
org.apache.axis.client.AdminClient -lhttp://localhost:8088/testws/services/AdminService undeploy.wsdd