Wiki Markup |
---|
{scrollbar} |
Overview
The Geronimo deployment plan for a Web application, which is usually packaged as a WAR file is called "geronimo-web.xml
". The geronimo-web.xml
deployment plan is used to in conjunction with the web.xml
JAVA EE deplopyment plan to deploy web applications consisting of Java Servlet Pages (JSP) and servlets to to the Geronimo application server, and optionally can be used to configure the Geronimo web server (i.e., Tomcat or Jetty) where the Web application is going to be deployed. The geronimo-web.xml
deployment plan is an optional file, but is typically used when deploying a WAR file. It is used to specify the application security roles, ejb names, database resources, JMS resources, etc. declared in web.xml
to corresponding entities deployed in the server. In addition to that, if there are any web container specific configurations, such as Tomcat or Jetty specific, depending on the application needs, all these settings are configured as well here. If the web application depends on any third party libraries or other services running in the server, all these dependencies are declared in the plan. Some web applications require class loading requirements different from the default class loading behavior. The geronimo-web.xml
allows application deployer to configure this as well. There are many more configurations that could be done through geronimo-web.xml
depending on the needs of web application.
...
Schema
The geronimo-web.xml
uses deployment plan is defined by the geronimo-web-2.0.1.xsd
schema located in the <geronimo_home>/schema/
subdirectory of the main Geronimo server directory and shown hereinstallation directory. The geronimo-web-2.0.1.xsd
schema itself is shown below:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- $Rev: 636723 $ $Date: 2008-03-13 07:36:06 -0400 (Thu, 13 Mar 2008) $ --> <xs:schema xmlns:web="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1" targetNamespace="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1" xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2" xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2" xmlns:ee="http://java.sun.com/xml/ns/persistence" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0"> <xs:import namespace="http://geronimo.apache.org/xml/ns/naming-1.2" schemaLocation="geronimo-naming-1.2.xsd"/> <xs:import namespace="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" schemaLocation="geronimo-application-2.0.xsd"/> <xs:import namespace="http://geronimo.apache.org/xml/ns/deployment-1.2" schemaLocation="geronimo-module-1.2.xsd"/> <xs:import namespace="http://java.sun.com/xml/ns/persistence" schemaLocation="http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"/> <xs:element name="web-app" type="web:web-appType"/> <xs:annotation> <xs:documentation> The web-app element is the root of the deployment descriptor for a Geronimo web application. Note that the sub-elements of this element should be as in the given order because it is defined as a sequence. </xs:documentation> </xs:annotation> <xs:annotation> <xs:documentation> This group keeps the usage of the contained JNDI environment reference elements consistent across J2EE deployment descriptors. </xs:documentation> </xs:annotation> <xs:complexType name="web-appType"> <xs:sequence> <xs:element ref="sys:environment" minOccurs="0"> <xs:annotation> <xs:documentation> This is the first part of the URL used to access the web application. For example context-root of "Sample-App" will have URL of http://host:port/Sample-App" and a context-root of "/" would be make this the default web application to the server. If the web application is packaged as an EAR that can use application context in the "application.xml". This element is necessary unless you want context root to default to the WAR name. </xs:documentation> </xs:annotation> </xs:element> <xs:element name="context-root" type="xs:string" minOccurs="0"/> <xs:element name="work-dir" type="xs:string" minOccurs="0"> <xs:annotation> <xs:documentation> This is the work directory that will be used by this application. For Jetty this will be relative to jetty home which is var/jetty by default. For Tomcat this will be relative to "catalina.home". </xs:documentation> </xs:annotation> </xs:element> <!--<xs:element name="context-priority-classloader" type="xs:boolean" minOccurs="0"/>--> <xs:element ref="naming:web-container" minOccurs="0"/> <xs:element name="container-config" type="web:container-configType" minOccurs="0"> <xs:annotation> <xs:documentation> Geronimo supports both Jetty and Tomcat web containers. This element is for a web application needs to take container specific settings. It can hold either a Tomcat element or a Jetty element or both. </xs:documentation> </xs:annotation> </xs:element> <xs:group ref="naming:jndiEnvironmentRefsGroup"/> <xs:element ref="naming:message-destination" minOccurs="0" maxOccurs="unbounded"/> <xs:sequence minOccurs="0"> <xs:element name="security-realm-name" type="xs:string"/> <xs:element ref="app:security" minOccurs="0"/> </xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="sys:service" minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation> Reference to abstract service element defined in imported "geronimo-module-1.2.xsd" </xs:documentation> </xs:annotation> </xs:element> <xs:element ref="ee:persistence"/> </xs:choice> </xs:sequence> </xs:complexType> <xs:complexType name="container-configType"> <xs:sequence> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:schema> |
...
Top-level elements
...
Namespace(s)
The namespaces used The top-level element in the geronimo-web.xml
correspond directly to the top-
level elements of the web-2.0.1.xsd
. They are: is <web-app> element. A graphical view of the children of this top-level element in geronimo-web-2.0.1.xsd
is shown below:
http://geronimo.apache.org/schemas-2.1/docs/geronimo-web-2.0.1.xsd.html
The children of the <web-app> top-level element are described below:
<sys:environment>
The <sys:environment> element uses the Geronimo deployment namespace
These elements provide the moduleid configuration and the dependencies. The moduleId elements provide the configuration name for the web module. So, when the web module is deployed, it is given the configuration name samples/samples/2.5/jar. The dependencies elements provide the configurations and third party libraries on which the web module is dependent on. These configurations and libraries will be available to the web module via a classloader hierarchy. In this case, the web module is dependent on samples/EmployeeDatasource/2.5/rar which is the configuration of the deployed Datasource that connects to a back end DB2 database. The Datasource deploys a database connection pool (javax.sql.Datasource) with name jdbc/EmployeeDatasource.
<context-root>
<work-dir>
<naming:web-container>
<container-config>
<naming:abstract-naming-entry>
<ejb-ref>
<ejb-local-ref>
<service-ref>
<resource-ref>
<resource-env-ref>
<naming:message-destination>
<security-realm-name>
<app:security>
<sys:service>
<ee:persistence>
default namespace is http://java.
default namespace is http://java.sun.com/xml/ns/javaee
. The XML elements that do not have a namespace prefix belong to the default namespace.
...