blob: 94ca12a76bf754a128f3774c767b98ea5f787180 [file] [log] [blame]
<?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>