I am running Tomcat 5.5.16, and I have a couple of DataSources set up in the
GobalNamingResources section of my server.xml.  Now, I preferably want to be
able to access these resources without having to set up a separate <Context>
section for each application, so I can deploy new applications that access
these resources without having to modify my server configuration.

Currently, the only way I am able to access the DataSources is to set things
up like this:

 <GlobalNamingResources>
   <Environment
        name="productionMode"
        type="java.lang.String"
        value="TEST"/>
   <Resource
        auth="Container"
        driverClassName="com.ibm.as400.access.AS400JDBCDriver"
        name="jdbc/xxx1"
        password="xxx"
        type="javax.sql.DataSource"
        url="jdbc:as400://abc.def.com"
        username="xxx"/>
   <Resource
        auth="Container"
        driverClassName="com.ibm.as400.access.AS400JDBCDriver"
        name="jdbc/xxx2" password="xxx"
        type="javax.sql.DataSource"
        url="jdbc:as400://ghi.jkl.com" username="xxx"/>
   <Resource
        auth="Container"
        driverClassName="com.ibm.as400.access.AS400JDBCDriver"
        name="jdbc/xxx3"
        password="xxx"
        type="javax.sql.DataSource"
        url="jdbc:as400://mno.pqr.com"
        username="xxx"/>
 </GlobalNamingResources>

......

   <Engine
       defaultHost="localhost"
       name="Catalina">
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
     <Host
         appBase="webapps"
         name="localhost"
         autoDeploy="true"
         liveDeploy="true"
         unpackWARs="true">
       <Context docBase="myApp" path="/myApp" reloadable="true">
         <ResourceLink global="productionMode" name="productionMode" type="
java.lang.String"/>
         <ResourceLink global="jdbc/xxx1" name="jdbc/xxx1" type="
javax.sql.DataSource" />
         <ResourceLink global="jdbc/xxx2" name="jdbc/xxx2" type="
javax.sql.DataSource" />
         <ResourceLink global="jdbc/xxx3" name="jdbc/xxx3" type="
javax.sql.DataSource" />
       </Context>
     </Host>
   </Engine>

My question is, can I create the links to the global resources in my web.xml?
Or are my only options to do either:

1)  Create a context for each new application with the resource links
2)  Create the resources in the web.xml on a per-application basis.

Option 1) is inconvenient but doable.  Option  2) isn't really an option,
because at the very least, I need to set some server-level environment
variables that the applications read.

So, is there a way for me to get around having to create a <Context> for
each application I want to install?  <DefaultContext> didn't work for me.

Thanks,
David Uctaa

Reply via email to