NameNotFoundException, когда имя приложения содержит точку - PullRequest
0 голосов
/ 28 октября 2010

У меня есть простое приложение 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.Как я могу обойти это?

1 Ответ

0 голосов
/ 28 октября 2010

Ваш EJB без сохранения состояния / с указанием состояния должен явно указать имя JNDI:

@Stateless(mappedName = ?)

Если это не работает, вы можете использовать context.list("") для просмотра дерева jndi, чтобы увидеть, какой удаленный EJB развернут.

...