无法从其他 EJB2 查找 EJB2,但可以从 servlet 查找
我在 GlassFish (J2EE_1.4) 上的 NetBeans 中开发企业项目。 我的项目中有一些实体 bean、一些会话 bean 和消息驱动 bean。 我以如下方式使用 servlet 中的实体 bean(在同一项目中,来自 Web 组件):
InitialContext ic;
ic = new InitialContext();
UserLocalHome userHome = (UserLocalHome) ic.lookup("java:comp/env/ejb/User");
一切正常。 但是当我尝试从会话 bean 或 MDB 进行查找时,出现命名错误。没有任何 Bean 可以查找任何其他 Bean。 Web 部署描述符中有一些引用,但据我所知,无需为 EJB 定义引用。 而且所有实体 bean 都只有本地接口。
I develop enterprise project in NetBeans on GlassFish (J2EE_1.4).
There are some entity beans, a couple of session beans and message driven bean in my project.
I use entity beans from servlet (in same project, from web-component) in way like this:
InitialContext ic;
ic = new InitialContext();
UserLocalHome userHome = (UserLocalHome) ic.lookup("java:comp/env/ejb/User");
Everything works just fine.
But when I try to do lookup from session bean or MDB I get naming error. No bean can lookup any other bean.
There are some references in web deployment descriptors, but AFAIK there's no need to define references for EJB.
Also all entity beans have only local interface.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
每个 EJB 都有自己的 java:comp 命名空间,因此在 J2EE 1.4 中,每个(或
或
必须有自己的 < code>
)。在 JavaEE 6 中,单个 EJB(或 servlet)可以使用
java:module
(或java:app
)前缀声明 ejb-ref,以允许任何组件能够共享参考的范围。Each EJB has its own java:comp namespace, so in J2EE 1.4, each
<entity/>
or<message-driven/>
must have its own<ejb-ref/>
(or<ejb-local-ref/>
).In JavaEE 6, a single EJB (or the servlet), can declare an ejb-ref with a
java:module
(orjava:app
) prefix to allow any component in that scope to be able to share the reference.