我正在尝试学习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架构以及如何进行查找的链接。
谢谢。
我的理解:
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架构以及如何进行查找的链接。
谢谢。