RMI -remote method invocation
JNDI-java naming and Directory interface
两者根本就是不同

解决方案 »

  1.   

    JNDI是java naming and directory interface
    RMI是remote method invocation
      

  2.   

    呵呵,我知道它们的英文全称,我是想知道,它们的联系,两者是不同,我也知道,但是在EJB中他们好象是比较容易搞混的哦
      

  3.   

    不会混查找就用jndi
    调用就用rmi
      

  4.   

    以下是我的一些个人理解。JNDI是命名服务的Java实现。
    命名服务的作用,就是为某个资源,指定一个字符串形式的名字。
    URL大家都很熟悉,它就是把字符串形式的URL地址,对应到一台网络上存在的主机,或者主机上的一个目录或文件。
    JNDI的应用范围比URL要广得多。你可以用命名服务给一个文件、一个数据库、一个ActiveX控件等起一个名字,这样,你就可以在程序中使用这个字符串,然后由JNDI负责找到对应的资源,调出来给你提供服务。RMI和RPC比较类似,是用来调用远程主机上提供的某个方法。
    远程主机上可能提供了股票服务,你可以用他来查找某种股票的价格;
    也可能提供了车票查询服务,你可以查询某趟车次。
    而RMI在调用这些服务之前,需要首先找到远程主机上提供服务的对象,这就是利用JNDI来完成的。
    RMI通过JNDI找到远程主机上提供服务的对象,得到该对象的引用后,RMI就和JNDI没有关系了。
    后面的操作都是RMI负责完成的。客户端调用该引用的方法时,RMI负责把该调用映射到远程主机上真正的方法上。同理,EJB中也用到JNDI,和RMI与JNDI的关系一样,也是提供最初的查找服务,后面的操作都与JNDI无关。
      

  5.   

    可以这么理解
    jndi就象是url,记录着你要访问的地址
    而rmi就象是http或是tcp,是一种连接方式你可以通过jndi找到"地址",然后通过rmi这种连接方式去访问
      

  6.   

    jndi 是一种框架,
    rmi是一种具体的技术细节。
    他们的共同点是提供naming service
    你完全可以用rmi去实现jndi框架。jboss就是这样的
    强烈推荐你去研究一下jboss有关jndi的原码,
    写得极为经典