我在GlassFish(J2EE_1.4)上的NetBeans中开发企业项目。 在我的项目中有一些实体bean,几个会话bean和消息驱动的bean。 我使用来自servlet的实体bean(在同一个项目中,来自web-component),如下所示:
InitialContext ic;
ic = new InitialContext();
UserLocalHome userHome = (UserLocalHome) ic.lookup("java:comp/env/ejb/User");
一切正常。 但是当我尝试从会话bean或MDB进行查找时,我得到了命名错误。没有bean可以查找任何其他bean。 Web部署描述符中有一些引用,但AFAIK不需要为EJB定义引用。 此外,所有实体bean都只有本地接口。
答案 0 :(得分:1)
每个EJB都有自己的java:comp命名空间,因此在J2EE 1.4中,每个<entity/>
或<message-driven/>
必须有自己的<ejb-ref/>
(或<ejb-local-ref/>
)。
在JavaEE 6中,单个EJB(或servlet)可以声明带有java:module
(或java:app
)前缀的ejb-ref,以允许该范围内的任何组件能够共享参考。