"传统"线程无法在 WildFly 中查找 JNDI 名称



我正在将一个旧的应用程序(不使用bean或依赖项注入)从Weblogic迁移到WildFly。在大多数情况下,它现在运行良好。然而,它也以"传统方式"(new Thread())创建线程,并且这些线程不能查找JNDI名称,这意味着数据库和邮件对它们不可用。

我似乎需要使用托管线程工厂来创建线程。这样,新线程应该仍然能够看到容器中定义的JNDI名称。然而,我不知道如何从容器中检索这样一个工厂。我能找到的所有例子都使用依赖注入,而应用程序的编写完全没有依赖注入。

那么,如何从自己创建的线程访问JNDI名称呢?或者,如何检索托管线程工厂,以便创建仍能看到容器及其JNDI绑定的线程?

标准托管线程工厂在JNDI中使用名称java:comp/DefaultManagedThreadFactory

有关更多信息,请参阅Java EE 7规范第146页的§EE.5.21。

最新更新