📜  命名上下文是只读的 jboss 7 (1)

📅  最后修改于: 2023-12-03 15:07:31.450000             🧑  作者: Mango

命名上下文是只读的 JBoss 7

在 JBoss 7 中,命名上下文是只读的。这意味着,一旦设置了 JNDI 绑定,就无法更改绑定的值。而且,在启动时,应用程序不允许进行新的 JNDI 绑定。

什么是 JNDI 绑定?

JNDI (Java Naming and Directory Interface) 是 Java EE 中的一个 API,它允许 Java 应用程序查找和访问特定的命名服务。JNDI 绑定是将一个对象与一个名字关联起来,以便在整个应用程序中通过该名字访问该对象。

为什么 JBoss 7 中的命名上下文是只读的?

在 JBoss 7 中,命名上下文是只读的,是因为 JBoss 7 引入了一个名为“Profile”的新概念。Profile 是一组组件和配置文件的集合,它们共同定义了应用程序服务器的配置。在 Profile 中,JNDI 绑定是静态的,绑定的对象在应用程序服务器启动时就已经被加载并初始化了。因此,一旦设置了 JNDI 绑定,就无法更改绑定的值。

如何在 JBoss 7 中使用 JNDI 绑定?

虽然在 JBoss 7 中命名上下文是只读的,但应用程序仍然可以通过 JNDI API 访问已绑定的对象。

以下是一个示例,演示如何在 JBoss 7 中使用 JNDI 绑定:

// 获取初始上下文
Context ctx = new InitialContext();

// 查找绑定的对象
MyBean myBean = (MyBean) ctx.lookup("java:global/myApp/myBean");

// 调用绑定对象的方法
myBean.doSomething();

在上面的示例中,MyBean 是一个已绑定的对象,在 JBoss 7 启动时就已经被加载并初始化了。应用程序可以通过 InitialContext 对象访问 JNDI 绑定,并使用 lookup() 方法检索已绑定的对象。

结论

在 JBoss 7 中,命名上下文是只读的。尽管应用程序无法在运行时更改 JNDI 绑定的值,但仍然可以使用 JNDI API 访问已绑定的对象。理解这个概念并学会使用 JNDI API 是 Java 开发人员必备的能力之一。