Feng.Li's Java See

抓紧时间,大步向前。
随笔 - 95, 文章 - 4, 评论 - 58, 引用 - 0

导航

<2006年11月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿(7)

随笔分类

随笔档案

文章档案

相册

大家都在博

  • 东东同学
  • 也许,在每个人的心灵深处,都会有一份属于自己的宁静
  • 亚明先生
  • 谁说世间无高人?且看我“物质生活”
  • 大飞
  • 此大飞,非彼大飞,乃宿舍长兼学生会主席
  • 玉东同学
  • 小男人

搜索

  •  

最新评论

阅读排行榜

评论排行榜

RMI的小例子,不理解的来这看看吧,也欢迎大家拍我。

        众所周之的EJB机制是建立在Java的RMI的基础之上的,要想对EJB有深入的了解,必须掌握RMI的运行机制,在此,我说说我对RMI的一些理解,希望大家同意的和不同意的都站出来讲几句。

       Rmi是Java平台上的RPC,但是由于其只支持Java,所以也就免去了程序员编写IDL(接口定义语言)之苦。对于Java与非Java程序之间的通信,可以使用RMI-IIOP.
        创建RMI远程对象后,程序员就可以象调用本地对象那样去调用远程对象,其底层通信机制则完全由RMI实现,无须我们操心了。
        通常,实现一个RMI系统有4个步骤:
1:定义一个remote interface.
2:   定义一个remote object implementation.
3:   定义客户端程序。
4:编译执行远程对象和客户端。

以下为代码示例
1:Remote接口  (注意:必须extends Remote,方法必须throws RemoteException)
public interface RMI_Add extends java.rmi.Remote {
public long add(long a, long b,long c)
throws java.rmi.RemoteException;
}

2:   remote object implementation.(注意:1:extends UnicastRemoteObject 2:构造函数内必须调用UnicastRemoteObject的构造函数,也就是执行super())

3: 定义远程实现类,在此我把服务器的绑定一起在此类中实现,也可另外再写一个类,实现RMI绑定。(注意:一般都用Naming.rebind(),因为rebind()可以覆盖原有的服务名,省去不必要的麻烦。1099端口为默认,也可以不写)
inport java.rmi.Naming;
public class RMI_AddImpl extends java.rmi.server.UnicastRemoteObject implements RMI_Add {
 public RMI_AddImpl() throws java.rmi.RemoteException {
super();
}
public long add(long a, long b,long c ) throws java.rmi.RemoteException {
return a + b+ c;
}
public static void main(String[] args) {
  try {
RMI_Add d = new RMI_AddImpl();
Naming.rebind("rmi://10.7.3.168:1099/RMI_AddService", d);
} catch (Exception e) { }
}

}

4:编译以上class文件(Javac)
5:   rmic编译服务器实现类,在此是RMI_AddImpl 。
6:rmigistry:运行RMI注册程序.
7:  运行客户端代码。

posted on 2006-11-04 02:21 小锋 阅读(2119) 评论(0)  编辑  收藏 所属分类: J2EE


只有注册用户登录后才能发表评论。


网站导航: