The core JNDI interface used by client applications is javax.naming.Context, which represents the initial naming context used to resolve names to bean proxies. To obtain an initial naming context, initialize a java.util.Properties instance and set the properties listed in Table 3-1. Pass the properties instance to the javax.naming.InitialContext constructor. The code fragment below shows a typical call sequence:
import javax.naming.*; static public Context getInitialContext() throws Exception { java.util.Properties p = new java.util.Properties(); // Sybase implementation of InitialContextFactory p.put(Context.INITIAL_CONTEXT_FACTORY, "com.sybase.ejb.InitialContextFactory"); // URL for the Server’s IIOP port p.put(Context.PROVIDER_URL, "iiop://myhost:2000"); // Username "pooh", password is "tigger2" p.put(Context.SECURITY_PRINCIPAL, "pooh"); p.put(Context.SECURITY_CREDENTIALS, "tigger2"); // Now create an InitialContext that uses the properties return new InitialContext(p); }
EJB servers from different vendors require different InitialContext property settings. If you are creating a client application that must be portable to other EJB servers, use an external mechanism to specify properties rather than hard-coding values in the source code. For example, in a Java application use command-line arguments or a serialized Java properties file. To specify properties used by a Java applet, use parameters in the HTML Applet tag that loads the applet.