什么接口绑定到哪个地址是在EJB Container里面决定的。如果你在部署到Container之前就要使用绑定名的话,可以这样做:
使用部署描述器(deployment descriptor)对本地或者远程接口进行引用绑定(reference binding)。然后查找。地址一般是:java:comp/env/ejb/(bean的名字,不带"bean")。使用JNDI取得Object之后要注意进行类型转换。远程接口需要使用PortableRemoteObject.narrow(Object,Class)。 本地接口可以直接进行强制类型转换。

解决方案 »

  1.   

    楼上大哥的意思是:我需要使用哪一个接口,或者本地,或者远程,只需要查找LOOKUP的时候输入相应的帮定名字就可以了??那我不是必须在编译完毕以后,进到部署描述文档里面看看,到底各自是什么名字??????????????????????????????
      

  2.   

    jndi的名字是你自己设定的!!!调用的时候调用你自己设定的名字,你自己还会混???
      

  3.   

    to henry_t(henry_t(小白菜)) 
    对的。但是进行JNDI引用绑定是在Container的部署界面设置的,换句话说你如果用web logic的服务器,部署EJB时就要进入admin console设置。我说的方法是在部署描述器里进行“引用绑定”,这样你就可以不去管在容器里EJB是和哪个名字绑定的。
      

  4.   

    to henry_t(henry_t(小白菜)) 
    对的。但是进行JNDI引用绑定是在Container的部署界面设置的,换句话说你如果用web logic的服务器,部署EJB时就要进入admin console设置。我说的方法是在部署描述器里进行“引用绑定”,这样你就可以不去管在容器里EJB是和哪个名字绑定的。
    =================================================================================
    多谢楼上,不过我在查找远程接口的时候,部署描述文件中我没有进行引用帮定,也没有在部署EJB的时候跑到WEBLOGIC CONSOLE里面去设置帮定的名字,我就直接用JNDI去LOOKUP了,是这样
                CTX.LOOKUP("MYBEAN");
    你看看,没有前面java:comp/env/ejb/,直接查找名字,我部署的时候直接用JBUILDERX就部署到WEBLOGIC里面了,没有仍何设置帮定名字的,那怎么和你说的不一样?????????
      

  5.   

    “用JBUILDERX建立了一个SBEAN(或者CMP),选择接口类型的时候,可以选择
    LOCAL/REMOTE接口类型”,JB的意思是同时为你提供远程和本地接口实现模版,分别为本地/远程方法调用准备;查找时也通过你部署的名字分别查找,注意本地接口直接使用CTX.LOOKUP("MYBEAN");远程的用jCTX.LOOKUP("ava:comp/env/ejb/MYBEAN“)就可以了。JBX在WEBLOGIC部署时是必须要帮定名字的,不过好象有默认的名字。