网上看到相关的文档,根着做没有成功,有些细节性的东西网上没有明说,或者有错误,特别是程序代码是有错的,作者或转载者根本没有亲自动手做一下。 系统平台:Windows+Axis1.3+Tomcat5.5+Eclipse 3.1。 一、搭建环境 1.下载并安装Tomcat (http://jakarta.apache.org/tomcat/index.html) 2.下载并安装Axis (http://ws.apache.org/axis/) 3.下载并安装Eclipse(http://www.eclipse.org/downloads/index.php) 4.下载tomcat插件(http://www.sysdeo.com/eclipse/tomcatPlugin.html) 5.下载wsdl2java插件(http://www.myspotter.com/wsdl2java.shtml) 二、安装测试 1.依照axis的安装指南将%axis_home%/webapps/axis复制到%tomcat_home%/webapps/下,并设置相应的环境变量:
AXIS_HOME = d:/ApacheSF/axis-1_1 AXIS_LIB = %AXIS_HOME%/lib AXISCLASSES=%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;%AXIS_LIB%/activation.jar
NOTE:axis1.1的AXIS_LIB下面没有activation.jar文件,可以从 http://java.sun.com/products/javabeans/glasgow/jaf.html 下载添加到AXIS_LIB下。 注意:此处别直接把以上的内容拷到你的环境变量的值里去,因为jar包的版本可能不同,需留意,此外还要把AXISCLASSES添加到CLASSPATH中去,即在CLASSPATH中加“%AXISCLASSES%”注意别遗漏“;”(此处注意,很多网上的文章是把AXIS_LIB加到CLASSPATH中) 2.测试axis安装是否成功: 2.1 访问axis的web application首页 http://localhost:8080/axis/ 2.2 访问http://localhost:8080/axis/happyaxis.jsp 显示结果页面会提示缺少那些jar文件,如果之前没有copy过activation.jar文件,这里很可能会看到提示。 三、用Eclipse创建两个项目来熟悉Web Services的部署。
1.在Eclipse中创建一个新项目。 2.将%AXIS_LIB%下的jar文件全部添加到项目的properties:java_building_path:libraray下。 3.创建项目文件。 3.1.创建服务类 MyService.java ,编译后部署在%tomcat_home%/webapps/axis/WEB-INF/classes/目录下; MyService.java: public class MyService{ public String serviceMethod(String arg){ return arg; } }
3.2.创建客户类client.java client.java: import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType; import org.apache.axis.utils.Options; import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; public class Client{ public static void main(String [] args){ try { String endpointURL ="http://127.0.0.1:8080/axis/services/MyService"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(endpointURL); call.addParameter("test",XMLType.XSD_STRING,ParameterMode.IN); call.setOperationName( "serviceMethod" ); call.setReturnType( org.apache.axis.encoding.XMLType.XSD_STRING ); String ret = (String) call.invoke( new Object[] { new String("Hello world!") } ); System.out.println("You typed : " + ret); } catch (Exception e) { System.err.println(e.toString()); } } } 注意addParameter不能少,且第一个参数不能有空格,!等,很多网上的文章都没有,在我的机子上就不行。 3.3.创建web services的部署文件deploy.wsdd deploy.wsdd: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="MyService" provider="java:RPC"> <parameter name="className" value="MyService"/> <parameter name="allowedMethods" value="*"/> </service> </deployment>
4.部署Web服务,选择Run...,主类为外部jar文件中的org.apache.axis.client.AdminClient,设置arguments为deploy.wsdd(可通过-p 设置tomcat的端口,我用的80,所以参数设为-p 80 deploy.wsdd).然后运行。 5.运行Client测试部署是否成功。
|