This chapter is for the Web component provider; that is, the person in charge of developing the web components on the server side. It describes how the web components should be packaged.
Web components are packaged for deployment in a standard Java programming language Archive file called a war file (Web ARchive), which is a jar similar to the package used for Java class libraries. A war has a specific hierarchical 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:
web.xml: The standard xml deployment descriptor in the format defined in the Java Servlet 2.4 Specification. Refer to $JONAS_ROOT/xml/web-app_2_4.xsd.
jonas-web.xml: The optional JOnAS-specific XML deployment descriptor in the format defined in $JONAS_ROOT/xml/jonas-web_X_Y.xsd.
classes: a directory that contains the servlet classes and utility classes.
lib: a directory that contains JAR archives of libraries (tag libraries and any utility libraries called by server-side classes). If the Web application uses Enterprise Beans, it can also contain ejb-jars. This is necessary to give to the Web components the visibility of the EJB classes. However, if the war is intended to be packed in an EAR, the ejb-jars must not be placed here. In this case, they are directly included in the EAR. Due to the use of the class loader hierarchy, Web components have the visibility of the EJB classes. Details about the class loader hierarchy are described in Chapter 5 JOnAS Class Loader Hierarchy.
Before building a war file, the Java source files must be compiled to obtain the class files (located in the WEB-INF/classes directory) and the two XML deployment descriptors must be written.
Then, the war file (web-application.war) is built using the jar command:
cd your_webapp_directory jar cvf web-application.war * |
During the development process, an "unpacked version" of the war file can be used. Refer to Section 3.5.3 Configuring the WEB Container Service.