java rmi接口 超时设置_[原创]Java RMI的简单示例--调用远程方法返回当前时间

Java RMI是一种与具体网络无关, 轻量级的, 完全可移植的RPC.

这个例子是一个简单的调用, 返回一个当前时间.

RMI远程接口必须实现java.rmi.Remote

importjava.util.Date;publicinterfaceRemoteDateextendsjava.rmi.Remote{publicDate getRemoteDate()throwsjava.rmi.RemoteException;publicfinalstaticString LOOKUPNAME="RemoteDate";

}

继承了java.rmi.Remote接口,LOOKUPNAME是在RMI中注册和查找用的名字.

RemoteDate接口的实现类

importjava.io.Serializable;importjava.rmi.RemoteException;importjava.util.Date;publicclassRemoteDateImplimplementsRemoteDate, Serializable{privatestaticfinallongserialVersionUID=1L;

@OverridepublicDate getRemoteDate()throwsRemoteException {returnnewDate();

}

}

下面写两个类, 一个用于注册RMI, 另一个用来调用RemoteDate

DateClient用来调用远程RemoteDate的方法

importjava.rmi.Naming;importjava.util.Date;publicclassDateClient {protectedstaticRemoteDate netConn=null;publicstaticvoidmain(String[] args) {try{

netConn=(RemoteDate) Naming.lookup(RemoteDate.LOOKUPNAME);

Date today=netConn.getRemoteDate();

System.out.println(today.toString());

}catch(Exception e) {

e.printStackTrace();

}

}

}

DateServer用来注册RemoteDateImpl, 注册名为RemoteDate.LOOKUPNAME

importjava.net.MalformedURLException;importjava.rmi.Naming;importjava.rmi.RemoteException;publicclassDateServer {publicstaticvoidmain(String[] args) {try{

RemoteDateImpl im=newRemoteDateImpl();

System.out.println("DateServer starting...");

Naming.rebind(RemoteDate.LOOKUPNAME, im);

System.out.println("DateServer ready");

}catch(RemoteException e) {

e.printStackTrace();

}catch(MalformedURLException e) {

e.printStackTrace();

}

}

}

其他的准备工作:

在eclipse工程目录的bin目录下, 运行下列命令

>rmic -d . com.icejoywoo.first.RemoteDateImpl

>rmiregistry

(rmic和rmiregistry都是在jdk的bin下, 我这里假设你已经添加了环境变量path)

然后先运行DateServer的main函数

DateServer starting...

DateServer ready

再运行DateClient的main函数

Fri May0619:56:16CST2011

可以看到, 这个时间是当前的时间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值