2010-10-28 48 views
0

我有一个简单的EJB应用程序,用于大约6个月前的工作。我安装了最新的JDeveloper(11.1.1.3.0),当我遇到这个问题时,我试图让它再次运行。NameNotFoundException当应用程序名称包含句点

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

随着消息(由我强调):

javax.naming.NameNotFoundException:

部署在此行未能在试图查找“Uran_2.0-TeacherManager#虎.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 /罗兰/ pgy2/BACNAAI/UranEJB/TeacherManager'

显然,应用程序的名称(Uran_2.0)不知何故提示JDeveloper中(或JNDI?我不知道)将名称中的.替换为/,这明显会导致JNDI查找失败。我怎样才能解决这个问题?

回答

0

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

@Stateless(mappedName = ?)

如果这不起作用,你可以使用context.list("")浏览JNDI树才能看到部署什么远程EJB 。

+0

是的,它在那里:'@Stateless(name =“TeacherManager”,mappedName =“Uran_2.0-TeacherManager”)'。尽管JNDI仍然在寻找'Uran_2/0-TeacherManager'。 – suszterpatt 2010-10-28 14:18:16

+0

然后查找“Uran_2 \\。0-TeacherManager” – h3xStream 2010-10-28 14:25:24

+0

给出:'javax.naming.NameNotFoundException:试图查找'Uran_2.0-TeacherManager#hu.elte.pgy2.BACNAAI.UranEJB.TeacherManager'没有找到子上下文'Uran_2.0-TeacherManager#hu'。解决''[根异常是javax.naming.NameNotFoundException:当试图查找'Uran_2.0-TeacherManager#hu.elte.pgy2.BACNAAI.UranEJB.TeacherManager'没有找到子上下文'Uran_2.0-TeacherManager#hu' 。解决 ''];剩余名称'Uran_2/0-TeacherManager#hu/elte/pgy2/BACNAAI/UranEJB/TeacherManager''。稍微好一些,但还不够。 – suszterpatt 2010-10-28 16:00:00

相关问题