示例:设置提供程序 URL 属性以选择不同的根上下文作为初始上下文
每个服务器包含它自已的服务器根上下文,并且当引导到服务器时,服务器根是缺省初始 JNDI 上下文。大多数时候,此缺省值是期望的初始上下文,这是因为在那里绑定系统工件(例如 EJB home)。然而,还存在与感兴趣的内容相关的其他根上下文。可以指定提供程序 URL 以选择其他根上下文。
以下是选择其他根上下文的示例:
用 CORBA 对象 URL 选择初始根上下文
向引导服务器注册了若干对象键,您可以用这些对象键为初始上下文选择根上下文。要使用 CORBA 对象 URL 对象键选择特定的根上下文,将对象键设置为相应的值。缺省对象键为 NameService。使用 JNDI 生成服务器根上下文。以下是列出不同的根上下文及其相应的对象键的表:
上下文根 | CORBA 对象 URL 对象键 |
---|---|
服务器根 | NameServiceServerRoot |
单元持久根 | NameServiceCellPersistentRoot |
单元根 | NameServiceCellRoot |
节点根 | NameServiceNodeRoot |
下面的示例显示使用设置了对象键的 corbaloc URL 将单元持久根上下文选择为初始上下文。
...
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
...
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL,
"corbaloc:iiop:myhost.mycompany.com:2809/NameServiceCellPersistentRoot");
Context initialContext = new InitialContext(env);
...
用名称空间根属性选择初始根上下文
您还可以通过将名称空间根属性设置传递到 InitialContext 结构程序来选择初始根上下文。通常,上面描述的对象键设置已足够。有时,属性设置更可取。例如,您可以在 Java 调用上设置根上下文属性,以让服务器根用作对于应用程序是透明的初始上下文。缺省服务器根属性设置为将生成服务器根上下文的 defaultroot。
上下文根 | 名称空间根属性值 |
---|---|
服务器根 | bootstrapserverroot |
单元持久根 | cellpersistentroot |
单元根 | cellroot |
节点根 | bootstrapnoderoot |
如果提供程序 URL 包含非 NameService 的对象键,那么初始上下文工厂将忽略名称空间根属性。
以下示例显示使用名称空间根属性来选择单元持久性根上下文作为初始上下文。注意,使用可用的常量而不是硬编码的属性名和值。
... import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import com.ibm.websphere.naming.PROPS; ... Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory"); env.put(Context.PROVIDER_URL, "corbaloc:iiop:myhost.mycompany.com:2809"); env.put(PROPS.NAME_SPACE_ROOT, PROPS.NAME_SPACE_ROOT_CELL_PERSISTENT); Context initialContext = new InitialContext(env); ...