LINUX.ORG.RU

Путь до класса в lookup

 ,


0

1

Доброго времени суток. Есть примерно такая конструкция:

InitialContext ctx = new InitialContext();
helloWorldBean = ( HelloWorldBean )ctx.lookup("ejb/mybeans/HelloWorldBean");

Как не мучался, итог всегда один:

javax.naming.NameNotFoundException: ejb/mybeans/HelloWorldBean -- service jboss.naming.context.java.ejb.mybeans.HelloWorldBean

Как узнать путь, не прибегая к тупому брутфорсу всех возможных значений? Слышал, есть какие-то jmx-вьюверы. Есть ли что-то подобное для idea? Спасибо



Последнее исправление: WennY (всего исправлений: 1)

По контексту можно гулять, есть методы. Несложно написать рекурсивный дампер, который тебе распечатает всё, что там есть.

Вообще обычно пишут «java:comp/env/ejb/...». Может и тебе поможет.

Legioner ★★★★★
()

Это же не JMX, это JNDI.

В административной консоли JBoss'a видны имена, назначенные JNDI. Выглядит это вот так.

Adonai ★★★
()
Ответ на: комментарий от Legioner

Емнип, джибос умеет только java:/ и java:jboss/, а на остальные префиксы нещадно ругается.

2TC: просто скопируй jndi из админки джибоса, слово в слово.

f1xmAn ★★★★★
()
Последнее исправление: f1xmAn (всего исправлений: 1)
Ответ на: комментарий от f1xmAn

Емнип, джибос умеет только java:/ и java:jboss/, а на остальные префиксы нещадно ругается.

java:comp/env это стандартный префикс, который должен понимать любой app server.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Насколько я помню, он в подсказке в jndi пишет, что либо java:/, либо java:jboss/. По крайней мере wildfly 8. Скажу точно, когда окажусь рядом с ним.

f1xmAn ★★★★★
()
Ответ на: комментарий от Legioner


JNDI Name: java:/comp/env/bl

JNDI name has to start with 'java:/' or 'java:jboss/'

f1xmAn ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.