Web-App Context Configuration

Version 9

    Platforms

    The table below is a comparison of locations a context.xml can be used in Tomcat and JBossAS. The base directory, CATALINA_HOME, is defined in JBossAS as:                                            
    • JBossAS 4.2.3 GA - JBOSS_HOME/server/[config]/deploy/jboss-web.deployer
    • JBossAS 4.3 GA - JBOSS_HOME/server/[config]/deploy/jboss-web.deployer
    • JBossAS 5.0.0 GA - JBOSS_HOME/server/[config]/deploy/jbossweb.sar

     

                               
    LocationTomcat 5.5.xJBossAS 4.3Tomcat 6.xJBossAS 5.0.0
    CATALINA_HOME/server.xml (Server/Host/Context)-+-+
    CATALINA_HOME/conf/server.xml (Server/Host/Context)+-+-
    CATALINA_HOME/context.xml----
    CATALINA_HOME/conf/context.xml+-+-
    CATALINA_HOME/conf/[Engine]/[Host]/context.xml+-+-
    CATALINA_HOME/conf/[Engine]/[Host]/context.xml.default+-+-
    CATALINA_HOME/conf/[Engine]/[Host]/[ctxPath].xml+-+-
    JBOSS_HOME/server/[config]/conf/[Engine]/[Host]/context.xml----
    JBOSS_HOME/server/[config]/conf/[Engine]/[Host]/[ctxPath].xml----
    [deployed-web-app]/META-INF/context.xml+-+-
    [deployed-web-app]/WEB-INF/context.xml-+-+

     

    Location Effects

    This list explains the effect of each location

     

    • [deployed-web-app]/WEB-INF/context.xml - Applies only to the web app
    • [deployed-web-app]/META-INF/context.xml -  Applies only to the web app
    • CATALINA_HOME/conf/[Engine]/[Host]/context.xml.default - Applies to all web apps deployed on [Host] by default. A context.xml deployed with a web app will over-ride.
    • CATALINA_HOME/server.xml (Server/Host/Context)- Applies to all web apps deployed on [Host]. Can be overridden by context.xml deployed with web app.
    • CATALINA_HOME/conf/server.xml (Server/Host/Context) - Applies to all web apps deployed on [Host]. Can be overridden by context.xml deployed with a web app.
    • CATALINA_HOME/conf/context.xml - Applies to all web apps deployed on [Host]. Can be overridden by context.xml deployed with a web app.

     

    Deploying a custom context in JBossAS

    Deploy a custom context by following these points:           
    • A custom context must extend o.a.catalina.core.StandardContext
    • The custom context class must be deployed with a corresponding mbeans-descriptors.xml
    • The custom context and mbeans-descriptor.xml must be deployed in a JAR to JBOSS_HOME/server/[config]/lib
    • The o.a.catalina.startup.ContextConfig must be extended if context configuration needs customization.
    • JBossAS 5.0             
      • Edit JBOSS_HOME/server/[config]/deployers/jbossweb.deployer/META-INF/war-deployers-jboss-beans.xml
      • Within the element <mbean name="WarDeployer" add the following properties  
        • Mandatory: <property name="contextMBeanCode">org.your.project.CustomContext<property>
        • Optional: <property name"contextConfigMBeanCode">org.your.project.CustomContextConfig<property>
    • JBossAS 4.3    
      • Edit JBOSS_HOME/server/[config]/deploy/jboss-web.deployer/META-INF/jboss-service.xml
      • Within <mbean code="org.jboss.web.tomcat.service.JBossWeb" name="jboss.web:service=WebServer"
        • Add <attribute name="ContextMBeanCode">org.your.project.CustomContext<attribute>
      • Prepare a mbeans-descriptors.xml and include it in a jar file along with your custom context class.
      • Deploy the jar file in JBOSS_HOME/server/[config]/lib