All naming operations are relative to a context. The initial context implements the Context interface and provides the starting point for resolution of names.
When the initial context is constructed, its environment is initialized with properties defined in the environment parameter passed to the constructor, and in any application resource files.
JNDI determines each property's value by merging the values from the following two sources, in order:
jndi.properties).
Context),
all of the values are
concatenated into a single colon-separated list. For other
properties, only the first value found is used.
The initial context implementation is determined at runtime.
The default policy uses the environment property
"java.",
which contains the class name of the initial context factory.
An exception to this policy is made when resolving URL strings, as described
below.
When a URL string (a String of the form
scheme_id:rest_of_name) is passed as a name parameter to
any method, a URL context factory for handling that scheme is
located and used to resolve the URL. If no such factory is found,
the initial context specified by
"java.naming.factory.initial" is used. Similarly, when a
CompositeName object whose first component is a URL string is
passed as a name parameter to any method, a URL context factory is
located and used to resolve the first name component.
See NamingManager. for a description of how URL
context factories are located.
This default policy of locating the initial context and URL context
factories may be overridden
by calling
NamingManager.setInitialContextFactoryBuilder().
NoInitialContextException is thrown when an initial context cannot be instantiated. This exception can be thrown during any interaction with the InitialContext, not only when the InitialContext is constructed. For example, the implementation of the initial context might lazily retrieve the context only when actual methods are invoked on it. The application should not have any dependency on when the existence of an initial context is determined.
When the environment property "java.naming.factory.initial" is non-null, the InitialContext constructor will attempt to create the initial context specified therein. At that time, the initial context factory involved might throw an exception if a problem is encountered. However, it is provider implementation-dependent when it verifies and indicates to the users of the initial context any environment property- or connection- related problems. It can do so lazily--delaying until an operation is performed on the context, or eagerly, at the time the context is constructed.
An InitialContext instance is not synchronized against concurrent access by multiple threads. Multiple threads each manipulating a different InitialContext instance need not synchronize. Threads that need to access a single InitialContext instance concurrently should synchronize amongst themselves and provide the necessary locking.
Context, NamingManager.setInitialContextFactoryBuilder
| Modifier and Type | Field and Description |
|---|---|
| protected Context | defaultInitCtx
Field holding the result of calling NamingManager.getInitialContext(). |
| protected boolean | gotDefault
Field indicating whether the initial context has been obtained by calling NamingManager.getInitialContext(). |
| protected Hashtable | myProps
The environment associated with this InitialContext. |
| Access | Constructor and Description |
|---|---|
| protected | InitialContext(boolean
true means do not initialize the initial context; false
is equivalent to calling lazy)new InitialContext()Constructs an initial context with the option of not initializing it. |
| public | |
| public | InitialContext(Hashtable<?, ?>
environment used to create the initial context.
Null indicates an empty environment. environment)Constructs an initial context using the supplied environment. |
| Modifier and Type | Method and Description |
|---|---|
| public Object | addToEnvironment(String propName, Object propVal)
Implements javax. Adds a new environment property to the environment of this context. |
| public void | |
| public void | |
| public void | |
| public String | composeName(String name, String prefix)
Implements javax. Composes the name of this context with a name relative to this context. |
| public Name | composeName(Name name, Name prefix)
Implements javax. Composes the name of this context with a name relative to this context. |
| public Context | createSubcontext(String name)
Implements javax. Creates and binds a new context. |
| public Context | createSubcontext(Name name)
Implements javax. Creates and binds a new context. |
| public void | destroySubcontext(String name)
Implements javax. Destroys the named context and removes it from the namespace. |
| public void | destroySubcontext(Name name)
Implements javax. Destroys the named context and removes it from the namespace. |
| public static < the type of the returned object T> T | |
| public static < the type of the returned object T> T | |
| protected Context | Returns: The non-null cached initial context.Retrieves the initial context by calling
|
| public Hashtable | getEnvironment()
Implements javax. Retrieves the environment in effect for this context. |
| public String | getNameInNamespace()
Implements javax. Retrieves the full name of this context within its own namespace. |
| public NameParser | getNameParser(String name)
Implements javax. Retrieves the parser associated with the named context. |
| public NameParser | getNameParser(Name name)
Implements javax. Retrieves the parser associated with the named context. |
| protected Context | Returns: A URL context forname or the cached
initial context. The result cannot be null.The non-null name for which to get the context. name)Retrieves a context for resolving the string name |
| protected Context | Returns: A URL context forname or the cached
initial context. The result cannot be null.The non-null name for which to get the context. name)Retrieves a context for resolving |
| private static String | |
| protected void | |
| public NamingEnumeration | list(String name)
Implements javax. Enumerates the names bound in the named context, along with the class names of objects bound to them. |
| public NamingEnumeration | list(Name name)
Implements javax. Enumerates the names bound in the named context, along with the class names of objects bound to them. |
| public NamingEnumeration | listBindings(String name)
Implements javax. Enumerates the names bound in the named context, along with the objects bound to them. |
| public NamingEnumeration | listBindings(Name name)
Implements javax. Enumerates the names bound in the named context, along with the objects bound to them. |
| public Object | |
| public Object | |
| public Object | lookupLink(String name)
Implements javax. Retrieves the named object, following links except for the terminal atomic component of the name. |
| public Object | lookupLink(Name name)
Implements javax. Retrieves the named object, following links except for the terminal atomic component of the name. |
| public void | rebind(String name, Object obj)
Implements javax. Binds a name to an object, overwriting any existing binding. |
| public void | rebind(Name name, Object obj)
Implements javax. Binds a name to an object, overwriting any existing binding. |
| public Object | removeFromEnvironment(String propName)
Implements javax. Removes an environment property from the environment of this context. |
| public void | rename(String oldName, String newName)
Implements javax. Binds a new name to the object bound to an old name, and unbinds the old name. |
| public void | rename(Name oldName, Name newName)
Implements javax. Binds a new name to the object bound to an old name, and unbinds the old name. |
| public void | |
| public void |
| defaultInitCtx | back to summary |
|---|---|
| protected Context defaultInitCtx Field holding the result of calling NamingManager.getInitialContext(). It is set by getDefaultInitCtx() the first time getDefaultInitCtx() is called. Subsequent invocations of getDefaultInitCtx() return the value of defaultInitCtx.
| |
| gotDefault | back to summary |
|---|---|
| protected boolean gotDefault Field indicating whether the initial context has been obtained
by calling NamingManager.getInitialContext().
If true, its result is in | |
| myProps | back to summary |
|---|---|
| protected Hashtable<Object, Object> myProps The environment associated with this InitialContext.
It is initialized to null and is updated by the constructor
that accepts an environment or by the
| |
| InitialContext | back to summary |
|---|---|
| protected InitialContext(boolean lazy) throws NamingException Constructs an initial context with the option of not
initializing it. This may be used by a constructor in
a subclass when the value of the environment parameter
is not yet known at the time the
| |
| InitialContext | back to summary |
|---|---|
| public InitialContext() throws NamingException Constructs an initial context.
No environment properties are supplied.
Equivalent to
| |
| InitialContext | back to summary |
|---|---|
| public InitialContext(Hashtable<?, ?> environment) throws NamingException Constructs an initial context using the supplied environment. Environment properties are discussed in the class description. This constructor will not modify
| |
| addToEnvironment | back to summary |
|---|---|
| public Object addToEnvironment(String propName, Object propVal) throws NamingException Implements javax. Doc from javax. Adds a new environment property to the environment of this context. If the property already exists, its value is overwritten. See class description for more details on environment properties.
| |
| bind | back to summary |
|---|---|
| public void bind(String name, Object obj) throws NamingException Implements javax. Doc from javax. Binds a name to an object.
See
| |
| bind | back to summary |
|---|---|
| public void bind(Name name, Object obj) throws NamingException Implements javax. Doc from javax. Binds a name to an object. All intermediate contexts and the target context (that named by all but terminal atomic component of the name) must already exist.
| |
| close | back to summary |
|---|---|
| public void close() throws NamingException Implements javax. Doc from javax. Closes this context. This method releases this context's resources immediately, instead of waiting for them to be released automatically by the garbage collector. This method is idempotent: invoking it on a context that has already been closed has no effect. Invoking any other method on a closed context is not allowed, and results in undefined behaviour.
| |
| composeName | back to summary |
|---|---|
| public String composeName(String name, String prefix) throws NamingException Implements javax. Composes the name of this context with a name relative to
this context.
Since an initial context may never be named relative
to any context other than itself, the value of the
| |
| composeName | back to summary |
|---|---|
| public Name composeName(Name name, Name prefix) throws NamingException Implements javax. Composes the name of this context with a name relative to
this context.
Since an initial context may never be named relative
to any context other than itself, the value of the
| |
| createSubcontext | back to summary |
|---|---|
| public Context createSubcontext(String name) throws NamingException Implements javax. Doc from javax. Creates and binds a new context.
See
| |
| createSubcontext | back to summary |
|---|---|
| public Context createSubcontext(Name name) throws NamingException Implements javax. Doc from javax. Creates and binds a new context. Creates a new context with the given name and binds it in the target context (that named by all but terminal atomic component of the name). All intermediate contexts and the target context must already exist.
| |
| destroySubcontext | back to summary |
|---|---|
| public void destroySubcontext(String name) throws NamingException Implements javax. Doc from javax. Destroys the named context and removes it from the namespace.
See
| |
| destroySubcontext | back to summary |
|---|---|
| public void destroySubcontext(Name name) throws NamingException Implements javax. Doc from javax. Destroys the named context and removes it from the namespace. Any attributes associated with the name are also removed. Intermediate contexts are not destroyed. This method is idempotent.
It succeeds even if the terminal atomic name
is not bound in the target context, but throws
In a federated naming system, a context from one naming system
may be bound to a name in another. One can subsequently
look up and perform operations on the foreign context using a
composite name. However, an attempt destroy the context using
this composite name will fail with
| |
| doLookup | back to summary |
|---|---|
| public static <T> T doLookup(Name name) throws NamingException A static method to retrieve the named object. This is a shortcut method equivalent to invoking:
If
| |
| doLookup | back to summary |
|---|---|
| public static <T> T doLookup(String name) throws NamingException A static method to retrieve the named object.
See
| |
| getDefaultInitCtx | back to summary |
|---|---|
| protected Context getDefaultInitCtx() throws NamingException Retrieves the initial context by calling
| |
| getEnvironment | back to summary |
|---|---|
| public Hashtable Implements javax. Doc from javax. Retrieves the environment in effect for this context. See class description for more details on environment properties. The caller should not make any changes to the object returned:
their effect on the context is undefined.
The environment of this context may be changed using
| |
| getNameInNamespace | back to summary |
|---|---|
| public String getNameInNamespace() throws NamingException Implements javax. Doc from javax. Retrieves the full name of this context within its own namespace. Many naming services have a notion of a "full name" for objects
in their respective namespaces. For example, an LDAP entry has
a distinguished name, and a DNS record has a fully qualified name.
This method allows the client application to retrieve this name.
The string returned by this method is not a JNDI composite name
and should not be passed directly to context methods.
In naming systems for which the notion of full name does not
make sense,
| |
| getNameParser | back to summary |
|---|---|
| public NameParser getNameParser(String name) throws NamingException Implements javax. Doc from javax. Retrieves the parser associated with the named context.
See
| |
| getNameParser | back to summary |
|---|---|
| public NameParser getNameParser(Name name) throws NamingException Implements javax. Doc from javax. Retrieves the parser associated with the named context.
In a federation of namespaces, different naming systems will
parse names differently. This method allows an application
to get a parser for parsing names into their atomic components
using the naming convention of a particular naming system.
Within any single naming system,
| |
| getURLOrDefaultInitCtx | back to summary |
|---|---|
| protected Context getURLOrDefaultInitCtx(String name) throws NamingException Retrieves a context for resolving the string name See getURLOrDefaultInitCtx(Name) for description of how a subclass should use this method.
| |
| getURLOrDefaultInitCtx | back to summary |
|---|---|
| protected Context getURLOrDefaultInitCtx(Name name) throws NamingException Retrieves a context for resolving When creating a subclass of InitialContext, use this method as follows. Define a new method that uses this method to get an initial context of the desired subclass.
When providing implementations for the new methods in the subclass,
use this newly defined method to get the initial context.
| |
| getURLScheme | back to summary |
|---|---|
| private static String getURLScheme(String str) | |
| init | back to summary |
|---|---|
| protected void init(Hashtable<?, ?> environment) throws NamingException Initializes the initial context using the supplied environment. Environment properties are discussed in the class description. This method will modify
| |
| list | back to summary |
|---|---|
| public NamingEnumeration Implements javax. Doc from javax. Enumerates the names bound in the named context, along with the
class names of objects bound to them.
See
| |
| list | back to summary |
|---|---|
| public NamingEnumeration Implements javax. Doc from javax. Enumerates the names bound in the named context, along with the class names of objects bound to them. The contents of any subcontexts are not included. If a binding is added to or removed from this context, its effect on an enumeration previously returned is undefined.
| |
| listBindings | back to summary |
|---|---|
| public NamingEnumeration Implements javax. Doc from javax. Enumerates the names bound in the named context, along with the
objects bound to them.
See
| |
| listBindings | back to summary |
|---|---|
| public NamingEnumeration Implements javax. Doc from javax. Enumerates the names bound in the named context, along with the objects bound to them. The contents of any subcontexts are not included. If a binding is added to or removed from this context, its effect on an enumeration previously returned is undefined.
| |
| lookup | back to summary |
|---|---|
| public Object lookup(String name) throws NamingException Implements javax. Doc from javax. Retrieves the named object.
See
| |
| lookup | back to summary |
|---|---|
| public Object lookup(Name name) throws NamingException Implements javax. Doc from javax. Retrieves the named object.
If
| |
| lookupLink | back to summary |
|---|---|
| public Object lookupLink(String name) throws NamingException Implements javax. Doc from javax. Retrieves the named object, following links except
for the terminal atomic component of the name.
See
| |
| lookupLink | back to summary |
|---|---|
| public Object lookupLink(Name name) throws NamingException Implements javax. Doc from javax. Retrieves the named object, following links except
for the terminal atomic component of the name.
If the object bound to
| |
| rebind | back to summary |
|---|---|
| public void rebind(String name, Object obj) throws NamingException Implements javax. Doc from javax. Binds a name to an object, overwriting any existing binding.
See
| |
| rebind | back to summary |
|---|---|
| public void rebind(Name name, Object obj) throws NamingException Implements javax. Doc from javax. Binds a name to an object, overwriting any existing binding. All intermediate contexts and the target context (that named by all but terminal atomic component of the name) must already exist. If the object is a
| |
| removeFromEnvironment | back to summary |
|---|---|
| public Object removeFromEnvironment(String propName) throws NamingException Implements javax. Doc from javax. Removes an environment property from the environment of this context. See class description for more details on environment properties.
| |
| rename | back to summary |
|---|---|
| public void rename(String oldName, String newName) throws NamingException Implements javax. Doc from javax. Binds a new name to the object bound to an old name, and unbinds
the old name.
See
| |
| rename | back to summary |
|---|---|
| public void rename(Name oldName, Name newName) throws NamingException Implements javax. Doc from javax. Binds a new name to the object bound to an old name, and unbinds the old name. Both names are relative to this context. Any attributes associated with the old name become associated with the new name. Intermediate contexts of the old name are not changed.
| |
| unbind | back to summary |
|---|---|
| public void unbind(String name) throws NamingException Implements javax. Doc from javax. Unbinds the named object.
See
| |
| unbind | back to summary |
|---|---|
| public void unbind(Name name) throws NamingException Implements javax. Doc from javax. Unbinds the named object.
Removes the terminal atomic name in This method is idempotent.
It succeeds even if the terminal atomic name
is not bound in the target context, but throws
Any attributes associated with the name are removed. Intermediate contexts are not changed.
| |