2015-08-28 63 views
1

某些Java應用服務器而不是是否支持通過JNDI的JDBC數據源?所有Java應用程序服務器是否都支持JNDI數據源?

我知道這很常見。但由於它不是Java EE標準,因此不能保證它們實際上都提供支持。

我問的原因是調查我們正在製作的通用Web應用程序的系統要求的可行性。它應該可以在儘可能多的應用程序服務器上部署。

+1

我一直認爲支持JNDI和JNDI數據源***對於JavaEE容器來說是***_requirement_(甚至對於「只是」一個servlet容器) –

+0

JNDI位於JVM(javax.naming)中。但是數據源,郵件會話等的使用不是JEE的一部分。那麼,至少不是我知道的。 –

+0

@JanGoyvaerts它當然是J2EE的一部分。 – EJP

回答

0

是的,如果應用服務器是Java EE投訴,那麼它支持使用JNDI查找數據源。

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

來源:
了Java EE7規範,它描述了一個默認的數據源要求第EE.15.19。

的Java EE產品供應商必須使默認數據源訪問的JNDI名稱java應用程序:COMP/DefaultDataSource。

該規範還引用了使用JNDI在許多其他地方查找數據源的情況,EE.15.19節只是我想到的第一個。

0

有趣的是,我使用容器管理的東西,如數據源,以確保應用程序可以是通用的,並可以在儘可能多的應用程序服務器上部署。 Java EE供應商可移植性的目標。

(我的諮詢客戶在公共部門,我用它來幫助他們的供應商之間移動和升級原有系統,總是很適合我。)

在JSR

316/Java EE 6的規範,例如討論JNDI在許多領域以及EE.2.7.6中的JDBC以及EE.2.7.7中的JPA。

數據源本身是Java SE的一部分。如果假設應用程序服務器供應商沒有爲JDBC數據源包含資源適配器,他們仍然必須提供JPA,並且他們仍然必須提供JCA,因此可以在市場後添加這樣的資源適配器。

在java EE早期,我通過添加資源適配器來配置JMS,因爲默認情況下它沒有安裝。但供應商仍然提供它,而且服務器當時實際上不是Java EE許可的。

相關問題