我有一个简单的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查找失败。我怎么能绕过这个?
答案 0 :(得分:0)
您的无状态/有状态EJB应明确指定JNDI名称:
@Stateless(mappedName = ?)
如果这不起作用,您可以使用context.list("")
浏览jndi树,以查看部署的远程EJB。