Packaging
To be deployed in a container,
components have first to be packaged in a standard formatted archive(jar, war or ear). Java SE
defines Java Archive (jar) files, which are used to aggregate many files (Java
classes, deployment descriptors, resources, or external libraries) into one
compressed file (based on the ZIP format). As seen in Figure, Java EE defines different types of modules that have their own
packaging format based on this common jar format.
Figure: Archives(war and jar) in containers
Note:
A JAR (Java ARchive)
file is a file that contains the class, image, and sound files for a Java
application or applet gathered into a single file and possibly compressed.
A WAR file
(or Web application ARchive) is a JAR file used to distribute a
collection of JavaServer Pages, JavaServlets, Java classes, XML
files, tag libraries, static web pages (HTML and related files) and other
resources that together constitute a web application.
An EAR (Enterprise
ARchive) is a file format used by Java EE for packaging one or more
modules into a single archive so that the deployment of the various modules
onto an application server happens simultaneously and coherently.
- An application client module contains Java classes and
other resource files packaged in a jar file. This jar file can be executed
in a Java SE environment or in an application client container. Like any
other archive format, the jar file contains an optional META-INF directory
for meta information describing the archive. The META-INF/MANIFEST.MF file
is used to define extension- and package-related data. If deployed in an
ACC, the deployment descriptor can optionally be located at META-INF/application-client.xml.
- An EJB module contains one or more session and/or
message-driven beans (MDBs) packaged in a jar file (often called an EJB
jar file). It contains an optional META-INF/ejb-jar.xml deployment
descriptor and can be deployed only in an EJB container.
- A web application module contains servlets, JSPs, JSF pages, and web services, as well as any other web-related files (HTML and XHTML pages, Cascading Style Sheets (CSS), Java-Scripts, images, videos, and so on). Since Java EE 6, a web application module can also contain EJB Lite beans (a subset of the EJB API which will be described later). All these artifacts are packaged in a jar file with a .war extension (commonly referred to as a war file, or a Web Archive). The optional web deployment descriptor is defined in the WEB-INF/web.xml file(For a Java servlet to be accessible from a browser, you must tell the servlet container what servlets to deploy, and what URL's to map the servlets to. This is done in the web.xml file of your Java web application). If the war contains EJB Lite beans, an optional deployment descriptor can be set at WEB-INF/ejb-jar.xml. Java.class files are placed under the WEB-INF/classes directory and dependent jar files in the WEB-INF/lib directory.
- An enterprise module can contain zero or more web application modules, zero or more EJB modules, and other common or external libraries. All this is packaged into an enterprise archive (a jar file with an .ear extension) so that the deployment of these various modules happens simultaneously and coherently. The optional enterprise module deployment descriptor is defined in the META-INF/application.xml file. The special lib directory is used to share common libraries between the modules.
Reference:

No comments:
Post a Comment