什么接口绑定到哪个地址是在EJB Container里面决定的。如果你在部署到Container之前就要使用绑定名的话,可以这样做:
使用部署描述器(deployment descriptor)对本地或者远程接口进行引用绑定(reference binding)。然后查找。地址一般是:java:comp/env/ejb/(bean的名字,不带"bean")。使用JNDI取得Object之后要注意进行类型转换。远程接口需要使用PortableRemoteObject.narrow(Object,Class)。 本地接口可以直接进行强制类型转换。
使用部署描述器(deployment descriptor)对本地或者远程接口进行引用绑定(reference binding)。然后查找。地址一般是:java:comp/env/ejb/(bean的名字,不带"bean")。使用JNDI取得Object之后要注意进行类型转换。远程接口需要使用PortableRemoteObject.narrow(Object,Class)。 本地接口可以直接进行强制类型转换。
对的。但是进行JNDI引用绑定是在Container的部署界面设置的,换句话说你如果用web logic的服务器,部署EJB时就要进入admin console设置。我说的方法是在部署描述器里进行“引用绑定”,这样你就可以不去管在容器里EJB是和哪个名字绑定的。
对的。但是进行JNDI引用绑定是在Container的部署界面设置的,换句话说你如果用web logic的服务器,部署EJB时就要进入admin console设置。我说的方法是在部署描述器里进行“引用绑定”,这样你就可以不去管在容器里EJB是和哪个名字绑定的。
=================================================================================
多谢楼上,不过我在查找远程接口的时候,部署描述文件中我没有进行引用帮定,也没有在部署EJB的时候跑到WEBLOGIC CONSOLE里面去设置帮定的名字,我就直接用JNDI去LOOKUP了,是这样
CTX.LOOKUP("MYBEAN");
你看看,没有前面java:comp/env/ejb/,直接查找名字,我部署的时候直接用JBUILDERX就部署到WEBLOGIC里面了,没有仍何设置帮定名字的,那怎么和你说的不一样?????????
LOCAL/REMOTE接口类型”,JB的意思是同时为你提供远程和本地接口实现模版,分别为本地/远程方法调用准备;查找时也通过你部署的名字分别查找,注意本地接口直接使用CTX.LOOKUP("MYBEAN");远程的用jCTX.LOOKUP("ava:comp/env/ejb/MYBEAN“)就可以了。JBX在WEBLOGIC部署时是必须要帮定名字的,不过好象有默认的名字。