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>