The J2EETM Tutorial

Web Application Archives

Web clients are packaged in Web application archives. In addition to Web components, a Web application archive usually contains other files, including the following:

Web components and static Web content files are called Web resources.

A WAR has a specific directory structure. The top-level directory of a WAR is the document root of the application. The document root is where JSP pages, client-side classes and archives, and static Web resources are stored.

The document root contains a subdirectory called WEB-INF, which contains the following files and directories:

You can also create application-specific subdirectories (that is, package directories) in either the document root or the WEB-INF/classes directory

Note: When you add classes and archives to a WAR, deploytool automatically packages them in the WEB-INF subdirectory. This is correct for Web components and server-side utility classes, but incorrect for client-side classes such as applets and any archives accessed by applets. To put client-side classes and archives in the correct location, you must drag them to the document root after you have added them to the archive.

Creating a WAR File

When you add the first Web component to a J2EE application, deploytool automatically creates a new WAR file to contain the component. A later section describes how to add a Web component.

You can also manually create a WAR in three ways:

Note that to use any of these methods, you must also manually create a deployment descriptor in the correct format.

Adding a WAR File to an EAR File

If you manually create a WAR file or obtain a WAR file from another party, you can add it to an existing EAR file as follows:

  1. Select a J2EE application.
  2. Select FileAddWeb WAR.
  3. Navigate to the directory containing the WAR file, select the WAR file, and click Add Web WAR.

See The Example JSP Pages for an example.

You can also add a WAR file to a J2EE application using the packager tool. The Duke's Bank application described in Building, Packaging, Deploying, and Running the Application uses packager.

Adding a Web Component to a WAR File

The following procedure describes how to create and add the Web component in the Hello1App application to a WAR. Although the Web component wizard solicits WAR and component-level configuration information when you add the component, this chapter describes how to add the component and provide configuration information at a later time using application, WAR, and Web component inspectors:

  1. Go to j2eetutorial/examples and build the example by running ant hello1. For detailed instructions, see About the Examples).
  2. Create a J2EE application called Hello1App.
    1. Select FileNewApplication.
    2. Click Browse.
    3. In the file chooser, navigate to j2eetutorial/examples/src/web/hello1.
    4. In the File Name field, enter Hello1App.
    5. Click New Application.
    6. Click OK.
  3. Create the WAR file and add the GreetingServlet Web component and all of the Hello1App application content.
    1. Invoke the Web component wizard by selecting FileNewWeb Component.
    2. In the combo box labelled Create New WAR File in Application select Hello1App. Enter Hello1WAR in the field labeled WAR Display Name.
    3. Click Edit to add the content files.
    4. In the Edit Contents dialog box, navigate to j2eetutorial/examples/build/web/hello1. Select GreetingServlet.class, ResponseServlet.class, and duke.waving.gif, and click Add. Click OK.
    5. Click Next.
    6. Select the Servlet radio button.
    7. Click Next.
    8. Select GreetingServlet from the Servlet Class combo box.
    9. Click Finish.
  4. Add the ResponseServlet Web component.
    1. Invoke the Web component wizard by selecting FileNewWeb Component.
    2. In the combo box labeled Add To Existing WAR File, select Hello1WAR.
    3. Click Next.
    4. Select the Servlet radio button.
    5. Click Next.
    6. Select ResponseServlet from the Servlet Class combo box.
    7. Click Finish.

Note: You can add JSP pages to a WAR file without creating a new Web component for each page. You simply select the WAR file, click Edit to edit the contents of the WAR, and add the pages. The JSP version of the Hello, World application, described in Updating Web Clients, shows how to do this. If you choose this method, you will not be able to specify alias paths (described in Specifying an Alias Path) for the pages.