An Enterprise JavaBeans (EJB) module is used to assemble
one or more enterprise beans into a single deployable unit. An EJB
module is stored in a standard Java archive (JAR) file.
An EJB module contains the following:
- One or more deployable enterprise beans.
- A deployment descriptor, stored in an Extensible Markup Language
(XML) file. This file declares the contents of the module, defines
the structure and external dependencies of the beans in the module,
and describes how the beans are to be used at run time.
You can deploy an EJB module as a stand alone application, or combine
it with other EJB modules or with Web modules to create a Java application.
An EJB module is installed and run in an enterprise bean container.
For more information about packaging and deployment of EJB 3.0
beans, see the topic EJB 3.0 module packaging overview.
Local client views
The EJB
specification only requires local client views to be supported for
EJBs packaged within the same application. This includes local homes,
local business interfaces, and the no-interface view. WebSphere
® Application Server permits access
to local client views to EJBs packaged within a separate application
with some restrictions:
- The local interface and all parameter, return, and exception types
used by the local interface must be visible to the class loader of
both the calling application and the target EJB application. You can
ensure this by either using a shared library associated with a server
class loader or by using an isolated shared library associated with
both applications. Read the Creating shared libraries topic for more
information.
- When the target EJB application is stopped, any cached references
to the EJB must be refreshed. You can either:
- Restart the calling application. The simplest solution is to
restart the calling application whenever you restart a target EJB
application on which it relies.
- Obtain a new reference from JNDI. By default, JNDI lookups from
the java namespace are cached, and the cache must either be disabled
or cleared to obtain a new reference. Read the Developing applications
that use JNDI topic for more information.
As of WebSphere Application Server Version 6.1.0.33,
EJB method invocations throw com.ibm.websphere.ejbcontainer.EJBStoppedException when
the target EJB application has been stopped. If you have cached the
EJB reference in an instance variable by using either @EJB injection
or JNDI lookup, then you can catch this exception and refresh the
EJB reference by performing a non-cached lookup.