When you deploy an Enterprise JavaBeans (EJB) module, you install that
module on a server that has been configured to support deployed modules.
Before you begin
Assemble one
or more EJB modules, assemble
one or more web modules, and assemble them into a Java EE application.
For
an overview about the changes to the EJB deployment model for EJB
3.x, see the topic EJB 3.x deployment overview.
Procedure
- Prepare the deployment environment. See
the
topic Preparing to host applications.
- Update
the configuration for each EJB module as needed
for the deployment environment.
- Required:
If a module has dependencies on Java 5-specific
extensions, such
as generics, annotations, and so on, then you must run the EJBDeplolycommand-line
tool separately and before installing the module or application containing
it. This
is because the administrative console and the wsadmin command-line
tool do not allow for specifying the ejbdeploy -complianceLevel 5.0
option.
It is only necessary to
run the EJBDeploy tool for EJB 2.1 modules containing entity beans.
- Address potential interoperability issues.
There can be unexpected results if
a WebSphere® stack product,
or another product, that runs on a version of Application Server that
does not support EJB 3.x attempts to remotely invoke a method on an
EJB 3.x compliant enterprise bean on a separate server that is running
a version Application Server that supports EJB 3.x. If these products
attempt to invoke a method through the enterprise bean's EJB 3.x remote
business interface, they might encounter exceptions that were introduced
in EJB 3.x that will be pushed back to the environment that is not
EJB 3.x compliant.
This scenario could
also be an issue for an administrator of an environment that includes
a combination of stack products that contain a mixture of EJB 3.x
compliant and non-compliant instances of Application Server.
The following is a
list of the exception classes that have been introduced in EJB 3.0:
- javax.ejb.ConcurrentAccessException
- javax.ejb.EJBAccessException
- javax.ejb.EJBTransactionRequiredException
- javax.ejb.EJBTransactionRolledbackException
- javax.ejb.NoSuchEJBException
- Ensure that Application Server is updated to 7.0.0.3.
- Manually copy the <app_server_root>/runtimes/ejb3exceptions.jar
file from Application Server to a directory on each of the stack products
installations, or other product installations, that you will use as
the EJB 3.x client.
- Ensure that the directory
that contains the ejb3exceptions.jar
file is in the class path.
One possible location for the JAR file that would satisfy this requirement
is the <app_server_root>/lib
directory on a server that is not EJB 3.x compliant.
Avoid trouble: Just like the EJB thin client
jars, if an update becomes available, users must copy the ejb3exceptions.jar
file again after installing the version of the WebSphere Application Server containing
the updated version.
gotcha
- Deploy the application. See the topic Deploying
and administering enterprise applications.
What to do next
If you specify that the EJBDeploy tool be run
during application installation and the installation fails with a
NameNotFoundException message, ensure that the input Java archive (JAR) or enterprise archive (EAR)
file does not contain source files. Either remove the source files
or include all dependent classes and resource files on the class path.
If there are source files in the input JAR or EAR file, the EJB deployment
tools runs
a rebuild before generating the deployment code.
If
the module deploys successfully, test and debug the module. See the
topic Diagnosing problems (using diagnosis tools).