Ejemplo: establecimiento de la propiedad del URL de proveedor para seleccionar un contexto de raíz diferente al contexto inicial
Cada servidor contiene su propio contexto de raíz de servidor y, cuando se ejecuta la rutina de carga con un servidor, la raíz de servidor es el contexto JNDI inicial predeterminado. La mayor parte del tiempo, este valor predeterminado es el contexto inicial deseado, ya que los artefactos del sistema, como por ejemplo, las ubicaciones iniciales de EJB están enlazadas allí. No obstante, existen otros contextos de raíz que pueden contener enlaces de interés. Es posible especificar un URL de proveedor para seleccionar otros contextos de raíz.
Los siguientes son ejemplos para seleccionar los contextos raíz:
Selección del contexto de raíz inicial mediante un URL de objeto CORBA
Hay varias claves de objeto registradas con el servidor de rutina de carga que se pueden utilizar para seleccionar el contexto de raíz para el contexto inicial. Para seleccionar un contexto de raíz determinado mediante una clave de objeto de URL de objeto CORBA, establezca la clave de objeto en el valor correspondiente. La clave de objeto predeterminada es NameService. Al utilizar JNDI, dará como resultado el contexto de raíz de servidor. La siguiente tabla enumera los diferentes contextos de raíz y las claves de objeto correspondientes:
Contexto de raíz | Clave de objeto de URL de objeto CORBA |
---|---|
Raíz de servidor | NameServiceServerRoot |
Raíz persistente de célula | NameServiceCellPersistentRoot |
Raíz de célula | NameServiceCellRoot |
Raíz de nodo | NameServiceNodeRoot |
El ejemplo siguiente muestra el uso de un URL de corbaloc con la clave de objeto establecida para seleccionar el contexto de raíz persistente de célula como contexto inicial.
...
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);
...
Selección del contexto de raíz inicial con la propiedad de raíz del espacio de nombres
También puede seleccionar el contexto de raíz inicial pasando un valor de propiedad de raíz de espacio de nombres al constructor InitialContext. Generalmente, el valor de clave de objeto que se ha descrito anteriormente es suficiente. A menudo, es preferible un valor de propiedad. Por ejemplo, puede establecer la propiedad de contexto de raíz en la invocación de Java para que sea la raíz de servidor que se utilice como contexto inicial transparente para la aplicación. El valor de propiedad de raíz de servidor predeterminado es defaultroot, que da como resultado el contexto de raíz de servidor.
Contexto de raíz | Valor de propiedad de raíz del espacio de nombres |
---|---|
Raíz de servidor | bootstrapserverroot |
Raíz persistente de célula | cellpersistentroot |
Raíz de célula | cellroot |
Raíz de nodo | bootstrapnoderoot |
La fábrica de contexto inicial no tiene en cuenta la propiedad de raíz de espacio de nombres si el URL de proveedor contiene una clave de objeto que no sea NameService.
El ejemplo siguiente muestra el uso de la propiedad de raíz de espacio de nombres para seleccionar el contexto de raíz persistente de célula como contexto inicial. Tenga en cuenta que se utilizan las constantes disponibles en lugar de la codificación del nombre de propiedad y el valor.
... 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); ...