环境WinXP, JDK6, tomcat 6.0, axis1.4
//JavaEye的格式很容易就乱了,不好看大家忍着点吧。
先安装tomcat,假定在C:/tomcat 6.0,运行之。
下载axis,解压到本地目录,假定为D:\axis-bin-1_4。
将其中的apps下的axis文件夹复制一份到tomcat的apps文件夹下。
访问http://localhost:<port>/axis/,检查axis的webapp是否安装成功。
访问http://localhost:<port>/axis/happyaxis.jsp检查是否缺少必要的库。
查看服务:在http://localhost:<port>/axis/中点击List,可以看到一些已有的服务和可用的方法,点击 wsdl,会查看到一个xml格式的详细调用描述(如果你的浏览器不显示,请右键菜单选择查看源代码)。类似于这样:
<?xml version="1.0" encoding="UTF-8" ?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <getVersionResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <getVersionReturn xsi:type="xsd:string"> Apache Axis version: 1.1 Built on Apr 04, 2003 (01:30:37 PST) </getVersionReturn> </getVersionResponse> </soapenv:Body> </soapenv:Envelope>
发布自己的服务:
先在我的电脑-高级-环境变量中添加环境变量如下:
AXIS_HOME 设为 D:\axis-bin-1_4,也就是刚解压的地方(注意解压的层次关系,这个目录下有lib等。。)
AXIS_LIB设为%AXIS_HOME%/lib
AXISCLASSPATH设为%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.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 (注意这里,各个jar的版本依赖于你下载的版本,跟自带文档中的install.html有所区别)
将AXISCLASSPATH也添加到CLASSPATH。
将服务的方法编译好的class文件放入tomcat下的apps/axis/WEB-INF/classes,如果是jar,放入lib文件夹。(放入的时候注意保留目录结构)。
方法1(定制发布):
拷贝samples/stock下的 deploy.wsdd文件到某个目录比如D:/deploy/,将<service></service>中的内容替换成你的服务的描述,并把不用的删除。
下面到命令行,转到D:/deploy/下,运行
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:<port>/axis/services/AdminService deploy.wsdd
正常应该会显示
Processing file deploy.wsdd <Admin>Done processing</Admin>
重启下服务器,在List 下面应该就可以看到你的服务了。同时我们在tomcat下webapps\WEB-INF\下会看到server-config.wsdd中添加了新的service。
以后如果修改你的服务类,只有替换对应的class或者jar就可以了,不需要重新注册服务。
方法2(即时发布):
这种方法更简单,只需要将服务的java源文件后缀改成jws,放到tomcat下的apps/axis/下然后通过http://localhost:<port>/axis/<ServiceName>.jws?wsdl 访问即可。
当然方法2需要提供源代码,而方法1则不需要。
卸载服务:
刚才我们提到发布服务,那么自然需要有卸载服务。其实很简单,只要创建一个undeploy.wsdd文件,内容类似如下:
<undeployment xmlns="http://xml.apache.org/axis/wsdd/"> <service name="MyService"/> </undeployment>