Given the following server.xml snipplet (functional), we'd like to move the jdbc/entitlement to the host element using a GlobalNamingResource (see bottom for example one of many attempts).. Can someone shed some light on how to accomplish this so all my contexts within a HOST element have access to the JNDI naming resource? I get errors when obtaining a Connection, not when looking up the JNDI resource name. <Host className="org.apache.catalina.core.StandardHost" appBase="webapps" autoDeploy="true" configClass="org.apache.catalina.startup.ContextConfig" contextClass="org.apache.catalina.core.StandardContext" debug="0" deployXML="true" errorReportValveClass="org.apache.catalina.valves.ErrorReportValve" liveDeploy="true" mapperClass="org.apache.catalina.core.StandardHostMapper" name="localhost" unpackWARs="true">
<!-- Snip some other contexts --> <Context cachingAllowed="true" debug="1" docBase="Entitlement.war" path="/Entitlement" privileged="false" reloadable="true"> <Logger className="org.apache.catalina.logger.FileLogger" debug="1" directory="logs" prefix="localhost_onejax_log." suffix=".txt" timestamp="true" verbosity="1"/> <Resource name="jdbc/entitlement" scope="Shareable" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/entitlement"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>username</name> <value>username</value> </parameter> <parameter> <name>password</name> <value>password</value> </parameter> <parameter> <name>driverClassName</name> <value>org.postgresql.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:postgresql://somehost/somedatabase?autoReconnect=true</value > </parameter> </ResourceParams> </Context> <Logger className="org.apache.catalina.logger.FileLogger" debug="0" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" verbosity="1"/> </Host> ------------------------------------------------------------------------ ----------------- Would like it to be moved to the Host element so it is available to multiple contexts like this, but the contexts no longer have access to the jdbc pool: <Host className="org.apache.catalina.core.StandardHost" appBase="webapps" autoDeploy="true" configClass="org.apache.catalina.startup.ContextConfig" contextClass="org.apache.catalina.core.StandardContext" debug="0" deployXML="true" errorReportValveClass="org.apache.catalina.valves.ErrorReportValve" liveDeploy="true" mapperClass="org.apache.catalina.core.StandardHostMapper" name="localhost" unpackWARs="true"> <GlobalNamingResource> <Resource name="jdbc/entitlement" scope="Shareable" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/entitlement"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>username</name> <value>username</value> </parameter> <parameter> <name>password</name> <value>password</value> </parameter> <parameter> <name>driverClassName</name> <value>org.postgresql.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:postgresql://somehost/somedatabase?autoReconnect=true</value > </parameter> </ResourceParams> </GlobalNamingResource> <!-- Snip some other contexts --> <Context cachingAllowed="true" debug="1" docBase="Entitlement.war" path="/Entitlement" privileged="false" reloadable="true"> <Logger className="org.apache.catalina.logger.FileLogger" debug="1" directory="logs" prefix="localhost_onejax_log." suffix=".txt" timestamp="true" verbosity="1"/> </Context> <Logger className="org.apache.catalina.logger.FileLogger" debug="0" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" verbosity="1"/> </Host>