一、Axis安装
1. 环境 JDK 6.0 、Tomcat 6.0
2. 到 http://ws.apache.org/Axis/ 网站下载Axis安装包,我使用的是axis1.4
3. 解压缩安装包,将axis-bin-1_4/axis-1_4/webapps下的axis包拷贝到TOMCAT_HOME/webapps/下
4. 启动tomcat,访问http://localhost:8080/Axis 检查安装是否成功
5. 以上步骤执行成功,可以开发webservice例子了
Axis支持三种web service的部署和开发,分别为:
1. Dynamic Invocation Interface ( DII)
2. Stubs方式
3. Dynamic Proxy方式
由于实际应用中Stubs方式使用的最频繁,所以重点讲解Stubs方式
二、axis Stubs方式实现
1. 编写服务端程序SayHello.java,编译SayHello.java
package server;
public class SayHello {
public String getName(String name) {
return "hello " + name;
}
}
2. 将编译后的文件拷贝到TOMCAT_HOME/webapps/axis/WEB-INF/classes下,如:
D:/appsoft/devtools/Tomcat6.0/webapps/axis/WEB-INF/classes
3. 执行如下命令生成SayHello.wsdl和deploy.wsdd
java -cp %axis_classpath%;D:/appsoft/devtools/Tomcat6.0/webapps/axis/WEB-INF/classes
org.apache.axis.wsdl.Java2WSDL -oSayHello.wsdl -lhttp://localhost:8080/axis/services/SayHello -n
sayhello -d server.SayHello
注意:%axis_classpath%是在环境变量中设置的axis需要的jar包,D:/appsoft/devtools/Tomcat6.0/webapps/axis/WEB-INF/classes是类文件所在的目录
4. 执行如下命令生成client stub
D:/appsoft/devtools/Tomcat6.0/webapps/axis/WEB-INF/classes>java -cp %axis_classpath%;
D:/appsoft/devtools/Tomcat6.0/webapps/axis/WEB-INF/classes org.apache.axis.wsdl.WSDL2Java
SayHello.wsdl -p client
5. 发布服务
D:/appsoft/devtools/Tomcat6.0/webapps/axis/WEB-INF/classes>java -cp %axis_classpath%;
D:/appsoft/devtools/Tomcat6.0/webapps/axis/WEB-INF/classes org.apache.axis.client.AdminClient
server/deploy.wsdd
6. 生成的stub client文件列表为:
SayHello.java
SayHelloService.java。
SayHelloServiceLocator.java
SayHelloSoapBindingStub.java
7. 编写客户端程序,编译并执行
package test;
import client.SayHelloService;
public class SayHelloClient {
public static void main(String[] args) {
try {
SayHelloService service = new client.SayHelloServiceLocator();
client.SayHello_PortType client = service.getSayHello();
String retvalue = client.getName("zhangsan");
System.out.println(retvalue);
} catch (Exception e) {
System.err.println("Execution failed. Exception: " + e);
}
}
}