Naming is used by clients of WebSphere® Application Server
applications most commonly to obtain references to objects related to those applications, such as
Enterprise JavaBeans (EJB) homes.
About this task
The Naming service is based on the Java™ Naming and Directory Interface (JNDI) Specification and the
Object Management Group (OMG) Interoperable Naming (CosNaming) specifications Naming Service
Specification, Interoperable Naming Service revised chapters and Common Object Request Broker:
Architecture and Specification (CORBA).
Procedure
- Develop your application using either JNDI or CORBA CosNaming interfaces.
Use these interfaces to look up server application objects that are bound into the namespace and
obtain references to them. Most Java developers use the JNDI interface. However, the CORBA CosNaming
interface is also available for performing Naming operations on WebSphere Application Server name servers or other CosNaming name servers.
Avoid trouble: Looking up a JNDI name that does not conform to the
JNDI javax.naming.CompositeName syntax in the java: namespace
results in a
different exception type on WebSphere Application Server traditional and Liberty.
For example, java:/\"jdbc/name
, results in InvalidNameException on Liberty and
NameNotFoundException on WebSphere Application Server traditional. If it is
necessary to look up a name that does not conform to the composite name syntax, then catch both
InvalidNameException and NameNotFoundException in applications for deployment to both Liberty and
WebSphere Application Server traditional.
- Assemble your application using an assembly tool.
Application assembly is a packaging and configuration step that is a prerequisite to application
deployment. If the application you are assembling is a client to an application running in another
process, you should qualify the jndiName values in the deployment descriptors for the objects
related to the other application. Otherwise, you might need to override the names with qualified
names during application deployment. If the objects have fixed qualified names configured for them,
you should use them so that the jndiName values do not depend on the other application's location
within the topology of the cell.
- Optional: Verify that your application is assigned the appropriate security
role if administrative security is enabled.
For more information on the security roles, see Naming roles.
- Deploy your application.
Install your assembled application on an application server. If the application you are
assembling is a client to an application running in another server process, be sure to qualify the
jndiName values for the other application's server objects if they are not already qualified. For
more information on qualified names, refer to Lookup names support in deployment descriptors and thin clients.
- Optional: If your application must access applications in
other cells, configure foreign cell
bindings for the other cells.
- Configure namespace
bindings.
This step is necessary in these cases:
- Your deployed application is to be accessed by legacy client applications running on previous
versions of the product. In this case, you must configure additional name bindings for application
objects relative to the default initial context for legacy clients. (Version 5 clients have a
different initial context from legacy clients.)
- The application requires qualified name bindings for such reasons as:
- It will be accessed by Java Platform, Enterprise Edition (Java EE) client applications or server
applications running in another server process.
- It will be accessed by thin client applications.
In this case, you can configure name bindings as additional bindings for application
objects. The qualified names for the configured bindings are fixed, meaning they do not
contain elements of the cell topology that can change if the application is moved to another server.
Objects as bound into the namespace by the system can always be qualified with a topology-based
name. You must explicitly configure a name binding to use as a fixed qualified name.
- Troubleshoot any problems that
develop.
If a Naming operation is failing and you need to verify whether certain name bindings exist, use
the dumpNameSpace tool to generate a dump of
the namespace.
What to do next
Specify jndiName values as needed when you assemble or deploy applications, or after
deployment.