2014-03-06 50 views
3

我正在嘗試學習Java EE,並且我一直在閱讀關於JNDI的一些內容,但除了在互聯網上的一些基本示例以及從一個地方複製到另一個地方的相同定義之外,我發現很少真正解釋架構的信息。我需要知道,如果我的理解是正確的,那麼我有一些問題:瞭解JNDI和ENC體系結構

我的理解:

JNDI

  • JNDI是使用一個服務提供商實現的API。
  • JNDI有幾種實現:LDAP,文件系統,DNS等。另外市場上的每個應用服務器都有自己的實現。例如,JBoss附帶JBossNS
  • 應用程序服務器使用的實現配置在屬性文件中。我想每個服務器都使用它自己的JNDI實現。

JNDI ENC

  • ENC是包裝在JNDI前面提到的以某種方式用於使用註釋和/或XML文件
  • ENC然後被用於通過注射accesing本地名稱
  • ENC被配置機制來定位資源並注入它

我的問題:

  1. 如果我有多個應用程序服務器,並且使用應用程序服務器JNDI實現(例如JBossNS),是否配置所有其他服務器以使用該特定服務器的JNDI實現?我基本上對企業架構感興趣,以及在服務器之間如何找到EJB。

  2. 如何配置ENC以注入在另一個應用程序服務器(不同的虛擬機)中找到的遠程對象。我是否使用「ejb-link」並使用全局名稱空間來訪問遠程bean?

與答案相關的例子很好,最終鏈接到JNDI體系結構以及如何查找完成會有所幫助。

謝謝

+0

+1好問題,但有點太廣,我想感謝 – Leo

+0

,我將很高興與鏈接到哪裏讀在這種情況下可以回答我的問題。 –

回答

3

我會盡量回答我自己的問題,也許這對別人有用。

首先,與JNDI有關,我的理解是正確的。我發現了一個很好的鏈接(我不知道關於Java EE版本),但是在細節上這一個解釋JNDI是如何工作的:

http://ejbvn.wordpress.com/category/week-1-enterprise-java-architecture/day-04-using-jndi-for-naming-services-and-components/

第二個問題是有關ENC。我是部分正確的,但ENC是JNDI世界中的上下文(如JNDI的上下文定義中所定義的)。這個上下文通常被用作別名的目的,因爲無論容器是什麼,都可以引用你的容器/模塊/應用程序EJB。因此,無論何時您引用ENC中的某些內容,您都會被重定向到適當的資源,該資源可以駐留在另一個模塊/應用程序/應用程序服務器中。另一個有用的鏈接是下面的鏈接。它包含幾個鏈接,以便moake務必閱讀所有這些:

http://www.javacodegeeks.com/2011/08/ejb-programmatic-lookup.html

問候