所有 Java 应用程序服务器都支持 JNDI 数据源吗?

Do all Java application servers support JNDI data sources?

一些 Java 应用程序服务器 支持 JDBC JNDI 数据源吗?

我知道他们这样做很常见。但由于它不是 Java EE 标准,因此无法保证它们都确实提供了支持。

我问的原因是调查我们正在制作的通用 Web 应用程序的系统要求的可行性。它应该可以部署在尽可能多的应用程序服务器上。

有趣的是,我使用容器管理的东西(例如数据源)来确保可能的应用程序是通用的,并且可以部署在尽可能多的应用程序服务器上。 Java EE 供应商可移植性的目标。

(我在 public 部门咨询客户,我用它来帮助他们在供应商之间移动并升级遗留系统,对我来说总是很好。)

in JSR 316 / Java EE 6 规范在许多领域讨论了 JNDI,JDBC 在 EE.2.7.6 部分和 EE.2.7.7 部分讨论了 JPA .

数据源本身是 Java SE 的一部分。如果假设应用程序服务器供应商不包含 JDBC 数据源的资源适配器,他们仍然必须提供 JPA,并且仍然必须提供 JCA,因此可以在上市后添加这样的资源适配器。

曾经在 java EE 早期,我通过添加资源适配器来配置 JMS,因为它不是默认安装的。但供应商仍然提供了它,并且服务器当时实际上并未获得 Java EE 许可。

是的,如果应用服务器是 Java EE 投诉,那么它支持使用 JNDI 查找数据源。

Here is a link to all of the Java EE complaint app servers

来源:
Java EE7 规范的 EE.15.19 部分描述了对默认数据源的要求。

The Java EE Product Provider must make the default data source accessible to the application under the JNDI name java:comp/DefaultDataSource.

该规范还提到使用 JNDI 在许多其他地方查找数据源,EE.15.19 节只是我想到的第一个。