Sun GlassFish Enterprise Server 2.1 Application Deployment Guide

About Modules

A module is a collection of one or more components that execute in the same container type (for example, web or EJB) with annotations or deployment descriptors of that type. One descriptor is standard, the other is optional and Enterprise Server specific. Annotations can be used instead of standard descriptors.

Types of modules are as follows:

Package definitions must be used in the source code of all modules so the class loader can properly locate the classes after the modules have been deployed.

Because the information in a deployment descriptor is declarative, it can be changed without requiring modifications to source code. At run time, the Java EE server reads this information and acts accordingly.

The Enterprise Server also supports lifecycle modules. See Chapter 13, Developing Lifecycle Listeners, in Sun GlassFish Enterprise Server 2.1 Developer’s Guide for more information.

EJB JAR, Web, and application client modules can also be deployed separately, outside of any application. The following figure shows separately deployed EJB JAR, Web, and application client modules. EJB components are assembled in a JAR file with annotations or ejb-jar.xml and sun-ejb-jar.xml deployment descriptors. Web components are assembled in a WAR file with annotations or web.xml and sun-web.xml deployment descriptors. Application client components are assembled in a JAR file with application-client.xml and sun-application-client.xml deployment descriptors. These module types are deployed to the Enterprise Server.

Figure 1–1 Module Assembly and Deployment

Figure shows EJB, Web, and Application Client module
assembly and deployment.