axis调用RMI模式WebService

1、RMI接口,很简单的2个方法,继承Remote接口

 

复制代码
   
   
package com.hoo.rmi; import java.rmi.Remote; /** * <b>function:</b>用axis实现RMI调用 * @author hoojo * @createDate Dec 16, 2010 16:22:25 PM * @file HelloRMI.java * @package com.hoo.rmi * @project AxisWebService * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ public interface HelloRMI extends Remote { public String sayHello(String name); public int getAge( int age); }
复制代码

 

 

2、实现上面的接口

 

复制代码
   
   
package com.hoo.rmi.impl; import com.hoo.rmi.HelloRMI; /** * <b>function:</b>实现RMI服务器接口 * @author hoojo * @createDate Dec 16, 2010 16:23:15 PM * @file HelloRMIImpl.java * @package com.hoo.rmi.impl * @project AxisWebService * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ public class HelloRMIImpl implements HelloRMI { public int getAge( int age) { return age + 10 ; } public String sayHello(String name) { return name + " say: hello rmi WebService ! " ; } }
复制代码

 

 

 

3、定制wsdd发布服务

 

复制代码
   
   
<? xml version="1.0" encoding="UTF-8" ?> < deployment xmlns ="http://xml.apache.org/axis/wsdd/" xmlns:java ="http://xml.apache.org/axis/wsdd/providers/java" > < service name ="HelloRMI" provider ="java:RPC" > < parameter name ="className" value ="com.hoo.rmi.impl.HelloRMIImpl" /> < parameter name ="allowedMethods" value ="getAge,sayHello" /> < parameter name ="scope" value ="request" /> </ service > </ deployment >
复制代码

 

 

 

4、命令行发布服务

java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/AxisWebService/services/AdminService deployRMI.wsdd

在浏览器中输入:

http://localhost:8080/AxisWebService/servlet/AxisServlet

即可查看到刚才发布的服务

 

5、编写客户端调用代码

 

复制代码
   
   
package com.hoo.client; import java.rmi.RemoteException; import javax.xml.namespace.QName; import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import com.hoo.rmi.HelloRMI; /** * <b>function:</b>axis WebService的RMI调用模式 * @author hoojo * @createDate Dec 16, 2010 16:28:09 PM * @file HelloRMIClient.java * @package com.hoo.client * @project AxisWebService * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */ public class HelloRMIClient { public static void main(String[] args) throws ServiceException, RemoteException { String url = " http://localhost:8080/AxisWebService/services/HelloRMI " ; // axis call调用 Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(url); call.setOperationName( new QName(url, " sayHello " )); String result = (String) call.invoke( new Object[] { " jack " }); System.out.println(result); // 远程接口模式,只管接口不管实现,这就是面向接口的好处 HelloRMI rmi = (HelloRMI) service.getPort(url, HelloRMI. class ); System.out.println(rmi.getAge( 22 )); } }
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值