0

我有一个简单的 EJB 应用程序,大约在 6 个月前可以使用。我安装了最新的 JDeveloper (11.1.1.3.0),当我遇到这个问题时,我正试图让它再次工作。

部署在此行失败:

TeacherManager teacherManager = (TeacherManager)context.lookup("Uran_2.0-TeacherManager#hu.elte.pgy2.BACNAAI.UranEJB.TeacherManager");

随着消息(我强调):

javax.naming.NameNotFoundException:尝试查找“Uran_2.0-TeacherManager#hu.elte.pgy2.BACNAAI.UranEJB.TeacherManager”时未找到子上下文“Uran_2”。已解决“” [根异常是 javax.naming.NameNotFoundException:尝试查找“Uran_2.0-TeacherManager#hu.elte.pgy2.BACNAAI.UranEJB.TeacherManager”时未找到子上下文“Uran_2”。解决 '']; 剩余名称“Uran_2/0-TeacherManager#hu/elte/pgy2/BACNAAI/UranEJB/TeacherManager

显然,应用程序的名称 (Uran_2.0) 以某种方式提示 JDeveloper(或 JNDI?我不确定)将.名称中的 替换为/,这显然会导致 JNDI 查找失败。我怎样才能解决这个问题?

4

1 回答 1

0

您的无状态/有状态 EJB 应明确指定 JNDI 名称:

@Stateless(mappedName = ?)

如果这不起作用,您可以使用context.list("")浏览 jndi 树以查看部署了哪些远程 EJB。

于 2010-10-28T14:01:04.537 回答