EJB modules
An EJBs module is used to assemble one or more enterprise beans into a single deployable unit. An EJB module is stored in a standard JAR file.
An EJB module contains the following:
- One or more deployable enterprise beans.
- A deployment descriptor, stored in an 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.
It is not necessary to use XML deployment descriptors in EJB 3.0 modules, although XML descriptors are supported. Instead of deployment descriptors, we can use annotations to provide component metadata.
We 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.
To package an EJB 3.0 module with a deployment descriptor, there are several ways to do it. We can package an EJB 3.0 module with an EJB 3.0 style session and/or message-driven beans exclusively; with an EJB 2.1 style session and/or message-driven beans exclusively, or a combination of 2.1 and 3.0 style beans. The XML deployment descriptor must be a Version 3.0 deployment descriptor. It is required that 2.1 entity beans are packaged in modules with 2.1 deployment descriptors.
EJB modules that contain EJB 3.0 beans must be at the EJB 3.0 specification level when running on WAS ND. To set the EJB module to support EJB 3.0 beans, we can set the ejb-jar.xml deployment descriptor level to 3.0, or we can make sure that the module does not contain an ejb-jar.xml deployment descriptor. If the module level is EJB 2.1 or earlier, no EJB 3.0 functions, including annotation scanning or resource injection is performed at runtime.
Related concepts
EJB 3.0 module packaging overview
Enterprise beans
Related tasks
Task overview: Using enterprise beans in applications