理解JNDI和ENC架构

4
我正在尝试学习Java EE,已经阅读了一些关于JNDI的基础例子,但是除了从一个地方复制到另一个地方的相同定义之外,我很少找到真正解释其架构的信息。 我需要知道我的理解是否正确,然后有一些问题:
我的理解:
JNDI
- JNDI是使用服务提供程序进行实现的API。 - JNDI有几种实现方式:LDAP、文件系统、DNS等。此外,市场上的每个应用服务器都带有自己的实现。例如,JBoss附带JBossNS。 - 应用服务器使用的实现在属性文件中进行配置。我想默认情况下,每个服务器都使用自己的JNDI实现。
JNDI ENC
- ENC是JNDI的包装器,用于访问本地名称。 - 使用注释和/或xml文件配置ENC。 - 然后,注入机制使用ENC定位资源并将其注入。
我的问题:
- 如果我有多个应用服务器,并且我使用应用服务器JNDI实现(例如JBossNS),那么我是否需要为所有其他服务器配置该特定服务器的JNDI实现?我基本上对企业架构以及如何在服务器之间找到EJB感兴趣。 - 如何配置ENC以注入在另一个应用程序服务器(不同的虚拟机)中找到的远程对象?我使用“ejb-link”并使用全局命名空间来访问远程bean吗?
相关的答案和示例会很好,最好提供JNDI架构以及如何进行查找的链接。
谢谢。

+1 很好的问题,但是有点太宽泛了,我猜。 - Leo
谢谢,如果您能提供一些链接让我阅读,以便回答我的问题,我会很高兴的。 - Florin Ilie
1个回答

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引用某些内容时,您将被重定向到适当的资源,该资源可以驻留在另一个模块/应用程序/应用程序服务器中。对我有用的另一个链接如下所示。它包含多个链接,请确保阅读所有链接:

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

问候


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接