![]() ![]() ![]() ![]() |
The Essential Components |
The Preparationslesson describes how to set up an initial context to access naming/directory services via the JNDI. For example, to use Sun's LDAP provider, use code that looks as follows.
The InitialContextHashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=jnditutorial"); Context ctx = new InitialContext(env); // ... do something useful with ctxclass is just a wrapper class that accesses the real context implementation--the Context instance created by the initial context factory class named by the Context.INITIAL_CONTEXT_FACTORY
("java.naming.factory.initial") environment property. This factory class must implement the InitialContextFactory
interface. In the previous example, the initial context factory class is com.sun.jndi.ldap.LdapCtxFactory.
For a context implementation to be accessible from the initial context, a service provider must provide a class that implements the InitialContextFactory interface. Here is an example of an initial context factory for the hierarchical namespace example.
This example is very simple. It calls the HierCtx constructor and returns an empty context. In an actual implementation, the initial context factory must create a Context instance for reaching all other parts of the namespace of the underlying naming/directory service. Also, an actual implementation would typically use the Context.PROVIDER_URLpublic class InitCtxFactory implements InitialContextFactory { public Context getInitialContext(Hashtable env) { return new HierCtx(env); } }("java.naming.provider.url") environment property to initialize the initial context. For example, in Sun's LDAP provider, the Context.PROVIDER_URL property indicates directory server's machine address and port, as well as the DN (distinguished name) of root naming context to use. In the previous example, the machine address and port are localhost and 389 and the DN is "o=jnditutorial".
The Essential Components: End of Lesson
![]()
![]()
What's next? Now you can:
- Continue on in this trail to learn how to add directory support.
- Go to the Adding URL Support
lesson to learn how to add pieces to the service provider for supporting URLs.
- Go to the Adding Federation Support
lesson to learn how to add federation support to a service provider.
- Go to the Miscellaneous
lesson to learn how to add various enhancements to a service provider, such as adding support for referrals and bundling factories.
![]() ![]() ![]() ![]() |
The Essential Components |