一、使用wsdd发布web服务:
新建java工程TestAxis,新建mypack,
服务端代码:
package mypack;
public class HelloService {
public String sayHello(String username) {
return "Hello:"+username;
}
}
将服务端的class文件放到axis/web-inf/classes下(包括包的整体结构)
新建部署文件deploy.wsdd:
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="helloservice" provider="java:RPC">
<parameter name="className" value="mypack.HelloService"/>
<parameter name="allowedMethods" value="sayHello"/>
<parameter name="scope" value="Request"/>
</service>
</deployment>
将部署文件放到Tomcat 5.0/webapps/axis/WEB-INF目录下,
运行——cmd——进入部署文件所在目录,如图:
运行命令:java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
如果成功则会显示 : <Admin>Done processing</Admin>
下面来解释AdminClient 所做的工作。AdminClient 首先会在axis.jar所在应用下的WEB-INF文件夹下创建一个webservice配置文件server-config.wsdd,并且根据wsdd文件的配置将我们的webservice加入到这个配置文件中。如果server-config.wsdd已经存在则不会创建,会修改这个文件将新的service 配置到server-config.wsdd文件中。
现在打开server-config.wsdd发现我们的服务已经配置在里面了:
在TestAxis工程的mypack下新建客户端文件,并把必须的jar包引入,
客户端代码:
package mypack;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;
public class HelloClient
{
public static void main(String [] args) {
try {
String username="Guest";
if(args.length!=0) username=args[0];
String endpoint =
"http://localhost:8080/axis/services/helloservice";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName(new QName("urn:helloservice", "sayHello") );
String ret = (String) call.invoke( new Object[] { username} );
System.out.println(ret);
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行代码试一下,看是否能打印出结果吧。
二、使用wsdd文件卸载web服务
前面已经使用wsdd文件成功的发布了web服务,下面的卸载也就很简单了
我们首先定义一个undeploy.wsdd:
<undeployment xmlns="http://xml.apache.org/axis/wsdd/">
<service name="helloservice"/>
</undeployment>
将部署文件放到Tomcat 5.0/webapps/axis/WEB-INF目录下,
运行——cmd——进入部署文件所在目录,如图:
运行命令:java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient undeploy.wsdd
如果成功则会显示 : <Admin>Done processing</Admin>
现在打开server-config.wsdd文件之前配置的helloworld服务已经不在了,卸载成功!