1, 编写服务
package com.webservice.wsdd;
public class HelloWSDD {
private int requestCount = 0;
public String hello(String name){
requestCount++;
System.out.println("调用次数" + requestCount);
return " 欢迎你" + name;
}
public Float add(Float a, Float b){
return a + b;
}
}
2, 发布
1> 编写针对本服务的*.wsdd文件.(可以参考axis示例) deploy.wsdd
<deployment name="test" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="HelloWSDD" provider="java:RPC"> <parameter name="className" value="com.webservice.wsdd.HelloWSDD" /> <parameter name="allowedMethods" value="*" /> </service> </deployment>
2> 使用命令生成本项目的全局配置文件server-config.wsdd
我的jar包我放在了d:\Jars\axis\axis-1_4\lib,所以我使用命令
java -Djava.ext.dirs=d:\Jars\axis\axis-1_4\lib org.apache.client.AdminClient -lhttp://localhost:8888/axis/services deploy.wsdd
3> 访问http://localhost:8888/axis, 列出的HelloWSDD的wsdl
4> 如果是已经有了server-config.wsdd文件,那么就只用添加配置
5> 将server-config.wsdd文件放到WEB-INF文件下,将服务class文件按照包结构复制到WEB-INF/classes下
3, 编写客户端程序访问HelloWSDD
public class TestWSDDClient {
public static void main(String[] args) {
try{
// 指定访问web服务的位置
String url = "http://localhost:8888/axis/services/HelloWSDD";
// 创建服务
Service service = new Service();
// 创建调用
Call call = (Call)service.createCall();
// 设置调用服务来源
call.setTargetEndpointAddress(url);
// 设置调用方法名
call.setOperationName(new QName(url, "hello"));
// 调用
String result = (String)call.invoke(new Object[]{"zhangsan"});
System.out.print("result: " + result );
}catch(Exception e){
e.printStackTrace();
}
}
}
4, 取消发布服务
1> 直接在server-config.wsdd文件中删除相应的配置 或者按照2>
2> 创建取消的配置文件 undeploy.wsdd文件
<undeployment name="test" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="HelloWSDD" > </service> </undeployment >
使用命令取消发布
java -Djava.ext.dirs=d:\Jars\axis\axis-1_4\lib org.apache.client.AdminClient -lhttp://localhost:8888/axis/services undeploy.wsdd