<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN"
 "task.dtd">
<task id="tjear" xml:lang="en-us">
<title outputclass="id_title">Creating an enterprise application project</title>
<shortdesc outputclass="id_shortdesc"></shortdesc>
<prolog><metadata>
<keywords><indexterm>enterprise application projects<indexterm>creating</indexterm></indexterm>
</keywords>
</metadata></prolog>
<taskbody outputclass="id_taskbody">
<context outputclass="id_context"><p outputclass="anchor_topictop"></p>
<p>Enterprise application projects contain references to the resources needed for enterprise
applications and can contain a combination of Web modules, JAR files, connector
modules, EJB modules, and application client modules. An enterprise application
project is deployed in the form of an EAR file, and is therefore sometimes
referred to as an EAR project. The modules in an enterprise application project
are mapped to other J2EE projects. The mapping information is stored in metadata
files within the enterprise application project. The metadata files are used
for exporting the project to an EAR file and for running the project on the
server.</p><p>Like the other types of projects, enterprise application projects
can contain one or more project facets, which represent units of functionality
in the project. To be deployed as an EAR file, the new project must have the
EAR facet. Depending on what you want to use the project for, you may want
to enable other facets for the project.</p><p conref="rjlimitcurrent.dita#rjlimitcurrent/limitation_ear_dbcs"></p><p>To
create a J2EE enterprise application project:</p></context>
<steps outputclass="id_steps">
<step><cmd>In the J2EE perspective, click <menucascade><uicontrol>File</uicontrol>
<uicontrol>New</uicontrol><uicontrol>Project</uicontrol><uicontrol>J2EE</uicontrol>
<uicontrol>Enterprise Application Project</uicontrol></menucascade>.</cmd>
</step>
<step><cmd>In the <uicontrol>Project Name</uicontrol> field, type a name for
the new project. </cmd></step>
<step><cmd>To change the default project location, clear the <uicontrol>Use
default</uicontrol> check box under <uicontrol>Project contents</uicontrol> and
select a new location with the <uicontrol>Browse</uicontrol> button.</cmd>
</step>
<step><cmd>In the <uicontrol>Target runtime</uicontrol> field, select the
target runtime for the project.</cmd><info>You can click the <uicontrol>New</uicontrol> button
to create a new runtime for the project to use.</info></step>
<step><cmd>If you want to use a predefined configuration for your project,
select a configuration in the <uicontrol>Common Configurations</uicontrol> list.</cmd>
</step>
<step><cmd>Click <uicontrol>Next</uicontrol>.</cmd></step>
<step><cmd>Select the check boxes next to the facets you want this project
to have and select a version number for each facet. </cmd><info>You can also
choose a preset combination of facets from the <uicontrol>Presets</uicontrol> list,
and you can also find out more about the requirements for each facet by right-clicking
the facet name and then clicking <uicontrol>Show Constraints</uicontrol>.</info>
</step>
<step><cmd>If you want to limit your project so it will be compatible with
one or more runtimes, click the <uicontrol>Show Runtimes</uicontrol> button
and select the runtimes that you want the project to be compatible with.</cmd>
</step>
<step><cmd>Click <uicontrol>Next</uicontrol>.</cmd></step>
<step><cmd>On the J2EE Modules to Add to the EAR page of the wizard, select
the existing modules that you want to add to the new enterprise application
project. </cmd></step>
<step><cmd>You can also create new modules to add to the project:</cmd>
<substeps>
<substep><cmd>Click the <uicontrol>New Module</uicontrol> button.</cmd></substep>
<substep><cmd>If you want to create one module, clear the <uicontrol>Create
default modules</uicontrol> check box, select the type of module you want
to create, click <uicontrol>Next</uicontrol> and follow the New Project wizard
for that type of project.</cmd></substep>
<substep><cmd>If you want to create more than one module, select the <uicontrol>Create
default modules</uicontrol> check box, select the check boxes for each type
of project you want to create, and click <uicontrol>Finish</uicontrol>. </cmd>
<info>You can enter a name for each module. Each of these modules will have
the default settings for that type of project and they will have the same
server target as the new enterprise application.</info></substep>
</substeps>
</step>
<step><cmd>Click <uicontrol>Finish</uicontrol>.</cmd></step>
</steps>
<postreq outputclass="id_postreq"><p outputclass="anchor_topicbottom"></p></postreq>
</taskbody>
</task>
