网上看到相关的文档,根着做没有成功,有些细节性的东西网上没有明说,或者有错误,特别是程序代码是有错的,作者或转载者根本没有亲自动手做一下。
系统平台: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测试部署是否成功。