使用Axis开发一个简单的Web Service

http://ws.apache.org/axis/  下载axis1.4,解压缩到 D:/JAVA/axis1.4
从其目录中的webapps中把axis目录拷贝到 D:/JAVA/tomcat/webapps 下
http://xml.apache.org/dist/xerces-j/ 下载Xerces解压缩xercesImpl.jar到 D:/JAVA/axis1.4/lib 下

新建WebService文件Hello.java
package  com.yangxiang.ws;
public   class  Hello {
    
public  String sayHello(String name) {
        
return   " Hello  "   +  name;
    }
}

编译后连同包结构一起拷贝到 D:/JAVA/tomcat/webapps/axis/WEB-INF/classes/ 下,启动Tomcat


任意目录下新建部署文件deploy.wsdd
< deployment  xmlns ="http://xml.apache.org/axis/wsdd/"  xmlns:java ="http://xml.apache.org/axis/wsdd/providers/java" >
< service  name ="sayhello"  provider ="java:RPC" >
   
< parameter  name ="className"  value ="com.yangxiang.ws.Hello" />
   
< parameter  name ="allowedMethods"  value ="sayHello" />
  
</ service >
</ deployment >

环境变量设置文件set.bat(和上面文件同一目录)
set AXIS_HOME=D:/JAVA/axis1.4
set AXIS_LIB=%AXIS_HOME%/lib
set AXISCLASSPATH=%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
注:其中一些jar包的名称随版本不同而不同,上述是axis1.4中的各个jar包名,请依据情况更改

此目录下开启命令行,运行set.bat,再运行
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd
显示<Admin>Done processing</Admin>则表示服务添加成功,此时可以看到 D:/JAVA/tomcat/webapps/axis/WEB-INF 下面的 server-config.wsdd 文件中已经添加了sayhello这个服务

//卸载服务开始(此处不需要)
如果需要卸载这个服务,可以新建undeploy.wsdd
< undeployment  xmlns ="http://xml.apache.org/axis/wsdd/" >
   
< service  name ="sayhello" />
</ undeployment >

运行
java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd
即可卸载掉刚才添加的服务
//卸载服务结束


新建WebService客户端测试文件WSTester.java(编译时需要 D:/JAVA/axis1.4/lib 下面的包)
import  javax.xml.namespace.QName;
import  org.apache.axis.client.Call;
import  org.apache.axis.client.Service;

public   class  WSTester {
    
public   static   void  main(String[] args) {
        
try  {
            String endpoint 
=   " http://127.0.0.1:8080/axis/services/sayhello " ;
            Service service 
=   new  Service();
            Call call 
=   null ;
            
//  创建Call实例以便发送RPC请求
            call  =  (Call) service.createCall();
            call.setOperationName(
new  QName(endpoint,  " sayHello " ));
            call.setTargetEndpointAddress(
new  java.net.URL(endpoint));
            
//  invoke负责向Web服务器发送客户指定的RPC请求
            String ret  =  (String) call.invoke( new  Object[] {  " someone "  });
            System.out.println(ret);
        } 
catch  (Exception ex) {
            ex.printStackTrace();
        }
    }
}

运行WSTester进行测试

另:文中目录结构及包结构可按个人喜好设置,不用完全照搬,关于Axis的详细帮助在 D:/JAVA/axis1.4/docs 下可以找到(按文中目录)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值