Программное определение JNDI корневого контекста / имени уха в JBoss 5.1 - PullRequest
5 голосов
/ 04 ноября 2010

Контекстом jndi по умолчанию в JBoss 5.1 для EJB является «earname / ejbname / local».В некоторых случаях, когда инъекция недоступна, мне нужно вручную выполнить поиск jndi, однако, если мой jar-файл ejb упакован в другие EAR-файлы, я бы хотел иметь переносимый способ поддержки вспомогательного класса поиска.

Я знаю, что способ сделать это существует, как я видел его раньше, но не могу найти его сейчас.Я хотел бы программно найти текущее имя приложения или имя уха.

Есть идеи?

Ответы [ 2 ]

7 голосов
/ 29 октября 2013

Найдено методом проб и ошибок для jboss 6.1:

    InitialContext ic = new InitialContext();
    String moduleName = (String) ic.lookup("java:module/ModuleName");
    String appName = (String) ic.lookup("java:app/AppName");
1 голос
/ 08 ноября 2010

Я знаю, что способ сделать это существует, как я видел его раньше, но не могу найти его сейчас.Я хотел бы программно найти текущее имя приложения или имя уха.

Я не знаю ни одного очевидного способа сделать это (не говоря, что это невозможно, хотя я думаю, что имя приложения или ухоимя больше относится к роли «развертывателя»), и я бы предложил:

  • переопределить имена JNDI по умолчанию, используя jboss.xml ~ или ~
  • для чтения файла свойств(и ваша система сборки сгенерирует его) из локатора службы

См. также

...