Web Service学习笔记(2)

来源:互联网 发布:js 右键事件重复添加了 编辑:程序博客网 时间:2024/05/16 12:14

(2)手动编写布署文件的方式布署(定制发布)
首先编写类
package com.eshore;

public class WriteToDeploy {
 public int getAge(){
 return 20;
 }
 public String getName(){
  return "zzy";
 }
}
将对应的类的.class文件拷贝到对应的axis/WEB-INF/classes下的对应的包中,
在axis的主目录中编写布署文件 deploy.wsdd 内容如下:
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service scope="session" name="WriteDeploy " provider=" java:RPC ">
<parameter name="className" value=" com.eshore.WriteToDeploy "/>
<parameter name="allowedMethods" value=" *"/>
</service>
</deployment>
在编写布署文件的时候,名称的地方前后一定不能有空格,否则发布的服务,访问会出现问题。
然后,使用org.apache.axis.client.AdminClient来发布,具体如下:
D:/tomcat-5.0.28/webapps/axis/WEB-INF>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -l http://localhost:8080/axis/services/AxisServlet deploy.wsdd
或者
D:/tomcat-5.0.28/webapps/axis/WEB-INF>java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -l http://localhost:8080/axis/services/AxisService deploy.wsdd
或者
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
在对应的目录下生成server-config.wsdd文件,在这个过程中应保持TOMCAT服务器一直启动。生成完毕后,在IE中输入http://localhost:8080/axis/services就可以查看所有的服务,编写相应的客户端的访问代码为:
package com.eshore;

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class WriteToDeployTest {
 public static void main(String args[]) {
  try {
   // 服务路径
   String endpoint = "http://localhost:8080/axis/services/WriteDeploy";
   Service service = new Service();
   Call call = null;
   call = (Call) service.createCall();
   // 设置调用的方法的名字
   call.setOperationName(new QName("http://localhost:8080/axis/services/WriteDeploy","getName"));
   call.setTargetEndpointAddress(new java.net.URL(endpoint));
   // 传入的输入参数zzy,及调用后的返回值,并将返回值打印
   String str = (String) call.invoke(new Object[0]);
   System.out.println(str);
  } catch (Exception ex) {
   ex.printStackTrace();
  }
 }
}
这种情况下的服务发布,较第一种稍微复杂,但这两种布署方式都只适合基本类型的传递,对于对象的传递,要使用更复杂的布署方式,使用AXIS提供的工具来实现。

原创粉丝点击