# Enterprise application projects

An enterprise application project ties together the resources that are required to deploy a J2EE enterprise application.

An enterprise application project contains a set of references to other J2EE modules and Java™ projects that are combined to compose an EAR file. These projects can be Web modules, EJB modules, application client modules, connector modules, general utility Java JAR files, and EJB client JAR files. Enterprise application projects created in the workbench include a deployment descriptor, as well as files that are common to all J2EE modules that are defined in the deployment descriptor.

When a J2EE module project is created, it can be associated with an enterprise application project. The project wizards aid this by allowing you to specify a new or existing enterprise application project. Enterprise application projects are exported as EAR (enterprise archive) files that include all files defined in the Enterprise Application project as well as the appropriate archive file for each J2EE module or utility JAR project defined in the deployment descriptor, such as Web archive (WAR) files and EJB JAR files.

An enterprise application can contain utility JAR files that are to be used by the contained modules. This allows sharing of code at the application level by multiple Web, EJB, or application client modules. These JAR files are commonly referred to as utility JAR files. The utility JAR files defined for an enterprise application project can be actual JAR files in the project, or you can include utility Java projects that are designated to become the utility JAR files during assembly and deployment.

To start developing J2EE applications, you typically first create an enterprise application project to tie together your Web, EJB, and application client modules. The enterprise application project is used to compose an entire application from the various modules. Since no source code is built directly into an enterprise application, these projects are not Java projects, and they are not compiled by the Java builder.

When you create an enterprise application project using the workbench, the following key files are automatically created:

META-INF/application.xml
  This file is the deployment descriptor for the enterprise application, as defined in the J2EE specification, that is responsible for associating J2EE modules to a specific EAR file. This file is created in the META-INF folder.
.settings/.component
  This file matches the location of each module's source code to the location of the module at deployment. For each module included for deployment with the EAR file, the .component file lists its source path and deployment path. This file is created in the .settings folder.
.settings/org.eclipse.wst.common.project.facet.core.xml
  This file lists the facets of the enterprise application project. See Project facets. This file is created in the .settings folder.
.project
  This is a workbench artifact, the standard project description file.

Related concepts
J2EE architecture
Project facets
Related tasks
Creating an enterprise application project
Importing an enterprise application EAR file
Exporting an enterprise application into an EAR file
Creating an application client project
Creating a connector project