| <?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> |