Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Embedded in a WAR file. In this case, a geronimo-web.xml file must be placed in the /WEB-INF directory of the WAR, which is the same place where the web.xml file must be located.
  2. Maintained separately from the WAR file. In this case, the path to the file must be provided to the appropriate Geronimo deployer (e.g., command-line or console). Note that in this case, the filename can be named something other than geronimo-web.xml but must adhere to the same schema.
  3. Embedded in an enterprise application EAR file: In one case, the high-level element <web-app> can be embedded in the EAR file's geronimo-application.xml file.
  4. Embedded in an enterprise application EAR file: In another case, the actual geronimo-web.xml file can be placed in the /META-INF directory of the EAR, which is the same location as the application.xml file.

Schema

The geronimo-web.xml uses the geronimo-web-2.0.1.xsd schema located in the <geronimo_home>/schema Geronimo server directory and shown here:

Code Block
xml
xml
borderStylesolid
titlegeronimo-web-2.0.1.xsd

<?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>

Namespace(s)

The namespaces used in the geronimo-web.xml correspond directly to the top-level elements of the web-2.0.1.xsd. They are:

default namespace is http://java.sun.com/xml/ns/javaeeImage Added. The XML elements that do not have a namespace prefix belong to the default namespace.

Top-level elements

Samples