2015-03-06 7 views
2

Я переношу старое приложение (не использует фасоль или инъекцию зависимостей) из Weblogic в WildFly. По большей части, теперь он отлично работает. Тем не менее, он также создает потоки «традиционным способом» (new Thread()), и эти потоки не могут искать имена JNDI, что означает, что для них недоступна база данных и почтовая рассылка.«Традиционные» потоки не могут искать имена JNDI в WildFly

Кажется, мне нужно использовать фабрику управляемых потоков для создания потоков. Таким образом, новые потоки должны иметь возможность видеть имена JNDI, определенные в контейнере. Однако я не уверен, как получить такую ​​фабрику из контейнера. Все примеры, которые я мог найти, используют инъекцию зависимостей, и приложение написано без этого.

Итак, как мне получить доступ к именам JNDI из самоподготовленных потоков? Или, как я могу получить фабрику управляемых потоков, которую я могу использовать для создания потоков, которые все еще видят контейнер и его привязки JNDI?

ответ

4

Стандартная фабрика управляемых потоков доступна в JNDI, используя имя java:comp/DefaultManagedThreadFactory.

Для получения дополнительной информации см. §EE.5.21, стр. 146 of Java EE 7 spec.

+0

Спасибо, работает отлично. – doublep

Смежные вопросы