<?xml version="1.0" encoding="utf-8"?> | |
<!--Arbortext, Inc., 1988-2006, v.4002--> | |
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" | |
"concept.dtd"> | |
<concept id="ceresrc" xml:lang="en-us"> | |
<title>EJB 2.x development resources</title> | |
<shortdesc>This topic describes resources and development tools that are commonly | |
used in EJB version 2.x development.</shortdesc> | |
<prolog><metadata> | |
<keywords><indexterm>EJB<indexterm>developing<indexterm>resources</indexterm></indexterm></indexterm> | |
<indexterm>resources<indexterm>EJB development</indexterm></indexterm></keywords> | |
</metadata></prolog> | |
<conbody> | |
<dl><dlentry> | |
<dt><b>EJB modules</b></dt> | |
<dd> <p>EJB modules are displayed in the Project Explorer view of the <tm | |
tmclass="special" tmowner="Sun Microsystems, Inc." tmtype="tm" trademark="Java">Java</tm> EE | |
perspective, and they correspond to EJB projects.</p><p>An EJB module is used | |
to assemble one or more enterprise beans into a single deployable unit. An | |
EJB module is developed in an EJB project, and it can either be exported as | |
a standalone EJB JAR file, or combined with other EJB or Web modules within | |
an enterprise application. An EJB JAR file uses the format of a standard <tm | |
tmclass="special" tmowner="Sun Microsystems, Inc." tmtype="tm" trademark="Java">Java</tm> archive | |
file. An EJB module contains the following: </p><ul> | |
<li>One or more enterprise beans and their associated .class and .java files.</li> | |
<li>Graphics and other files depending on the need of the enterprise bean. </li> | |
<li>A deployment descriptor. The file type for the deployment descriptor is | |
Extensible Markup Language (XML). This file declares the contents of the EJB | |
module, defines the structure of the beans in the module, and provides a description | |
of how the beans are to be used at run time. </li> | |
<li>A MANIFEST.MF file in the <uicontrol>META-INF</uicontrol> directory. The | |
manifest file can contain a class path entry, with references to other JAR | |
files or EJB modules in a J2EE enterprise application. It defines the module's | |
external dependencies.</li> | |
</ul><p>An EJB module is installed and runs in an EJB container.</p><p>An | |
enterprise bean is a <tm tmclass="special" tmowner="Sun Microsystems, Inc." | |
tmtype="tm" trademark="Java">Java</tm> component that can be combined with | |
other resources to create distributed client/server applications.</p><note>If | |
you choose to create an EJB client JAR file for your EJB module, the client | |
interface classes for the enterprise beans will not be included in the EJB | |
JAR file, but are included in the EJB client JAR file.</note></dd> | |
</dlentry><dlentry> | |
<dt><b>EJB projects</b></dt> | |
<dd> <p>In the workbench, you create and maintain resources for enterprise | |
applications in projects. An EJB project is a logical module that allows you | |
to organize your enterprise beans.</p><p>The workbench supports EJB 1.1, EJB | |
2.0, and EJB 2.1 projects. The J2EE specification level of a containing EAR | |
project must be set to J2EE 1.3 or higher for EJB 2.0 projects, and J2EE 1.4 | |
for EJB 2.1 projects. In an EJB 1.1 project, you will only be able to create | |
EJB 1.1 beans.</p><p>An EJB project is a specialized <tm tmclass="special" | |
tmowner="Sun Microsystems, Inc." tmtype="tm" trademark="Java">Java</tm> project. | |
Like a <tm tmclass="special" tmowner="Sun Microsystems, Inc." tmtype="tm" | |
trademark="Java">Java</tm> project, an EJB project must have one or more source | |
folders to contain the source and output files for the project. By default, | |
the source folder is named <b>ejbModule</b>, but you can change that name | |
when you create the project or new source folders. When you publish or deploy | |
the project, the contents of the folder or folders are aggregated. </p><p>You | |
cannot use the EJB project as the source folder, doing so will cause errors. | |
Also, though you can have more than one source folder in the project, only | |
one of these source folders can contain the <uicontrol>META-INF</uicontrol> folder | |
in which the MANIFEST.MF and deployment descriptor files reside.</p><note>If | |
you choose to create an EJB client JAR file for your EJB module, the client | |
interface classes for the enterprise beans will not be included in the EJB | |
project, but in separate EJB client JAR project. EJB client JAR projects are | |
displayed in the Project Explorer as <tm tmclass="special" tmowner="Sun Microsystems, Inc." | |
tmtype="tm" trademark="Java">Java</tm> projects under the <b>Other Projects</b> node.</note></dd> | |
</dlentry><dlentry> | |
<dt><b>EJB client projects</b></dt> | |
<dd> <p>The EJB tooling supports the creation of EJB client JAR projects for | |
EJB modules. An EJB client JAR project contains all the interface classes | |
that a client program needs to use the client views of the enterprise beans | |
that are contained in the EJB project. When you create an EJB client project | |
for an EJB project, a new <tm tmclass="special" tmowner="Sun Microsystems, Inc." | |
tmtype="tm" trademark="Java">Java</tm> project is created and added to your | |
workspace. The EJB client project is added as a project utility JAR file to | |
each module that the EJB project belongs to.</p><p>By default, when you use | |
the wizard to create an EJB project, an EJB client JAR project is also created. | |
However, you can clear this option in the wizard.</p><note type="tip">You | |
can also add the EJB client project to another enterprise application that | |
does not include the EJB project as a module. This will ensure that the EJB | |
client JAR file is exported and packaged with the EAR file when the application | |
is exported.</note></dd> | |
</dlentry><dlentry> | |
<dt><b>Enterprise beans</b></dt> | |
<dd> <p>An enterprise bean is a <tm tmclass="special" tmowner="Sun Microsystems, Inc." | |
tmtype="tm" trademark="Java">Java</tm> component that can be combined with | |
other resources to create distributed client/server applications.</p><p>There | |
are three types of enterprise beans: entity beans, session beans, and message-driven | |
beans. Typically, all types of beans are used together within an enterprise | |
application.</p><dl><dlentry> | |
<dt><b>Entity beans</b></dt> | |
<dd>Entity beans store permanent data. Entity beans with container-managed | |
persistence (CMP) require database connections. Entity beans with bean-managed | |
persistence manage permanent data in whichever manner is defined in the bean | |
code. This can include writing to databases or XML files, for example.</dd> | |
</dlentry><dlentry> | |
<dt><b>Session beans</b></dt> | |
<dd>Session beans do not require database access, though they can obtain it | |
indirectly (as needed) by accessing entity beans. Session beans can also obtain | |
direct access to databases (and other resources) through the use of resource | |
references.</dd> | |
</dlentry><dlentry> | |
<dt><b>Message-driven beans</b></dt> | |
<dd>Message-driven beans are a special kind of enterprise bean that act as | |
message consumers in the JMS messaging system. As with standard JMS message | |
consumers, message-driven beans perform business logic based on the message | |
contents. In several ways, the dynamic creation and allocation of message-driven | |
bean instances mimics the behavior of stateless session enterprise beans. | |
However, message-driven beans are different from stateless session enterprise | |
beans (and other types of enterprise beans) in a couple of ways:<ul> | |
<li>Message-driven beans process multiple JMS messages asynchronously, rather | |
than processing a serialized sequence of method calls.</li> | |
<li>Message-driven beans have no home or remote interface, and therefore cannot | |
be directly accessed by internal or external clients.</li> | |
</ul></dd> | |
</dlentry></dl></dd> | |
</dlentry><dlentry> | |
<dt><b>Deployment descriptors</b></dt> | |
<dd> <p>A deployment descriptor contains configuration data that the runtime | |
environment uses for an application. A deployment descriptor can include information | |
about the following: </p><ul> | |
<li>The structure and content (enterprise beans, for example) of the application.</li> | |
<li>References to internal and external dependencies. For example, an enterprise | |
bean in an EJB module can require another enterprise bean that is not bundled | |
in the same module.</li> | |
<li>References to resource factory objects, such as URLs or JDBC data sources.</li> | |
<li>Security roles that the container uses when implementing the required | |
access control for the application.</li> | |
<li>Transactional information about how (and whether) the container is to | |
manage transactions for the application.</li> | |
</ul><p>Deployment descriptors are XML files packaged with the application's | |
files in a <tm tmclass="special" tmowner="Sun Microsystems, Inc." tmtype="tm" | |
trademark="Java">Java</tm> archive file. An EJB deployment descriptor is called | |
ejb-jar.xml and is located in the <b>META-INF</b> folder of an EJB project. | |
A J2EE application contains one application-level deployment descriptor file, | |
governing the application as a whole. It also contains several component-level | |
deployment descriptors, one for each module in the application.</p></dd> | |
</dlentry></dl> | |
</conbody> | |
</concept> |