Jay
Jay

Reputation: 20126

Moving contents of META-INF/context.xml to tomcat/conf

We are trying to take the environment specific configuration settings out of our war files, so we can deploy the same war file to dev/test/prod tomcat servers and not have to change the contents of the war config file.

When I move the META-INF/context.xml for the database connection to the conf/server.xml the database connection no longer works, with the following error, anyone know why this would be?

server.xml:

<GlobalNamingResources>
    ....
    <Resource
            url="jdbc:oracle:thin:@hostname:1521/something"
            username="username"
            name="jdbc/mydb"
            password="password"
            auth="Container"
            driverClassName="oracle.jdbc.driver.OracleDriver"
            maxActive="5" maxIdle="2" maxWait="10000"
            removeAbandoned="true"
            type="javax.sql.DataSource"
            />
</GlobalNamingResources>

The error is as follows:

INFO: Deploying web application directory ROOT
Problem reading system configuration. Cannot create JDBC driver of class '' for connect URL 'null' (java.io.IOException: Cannot create JDBC driver of class '' for connect URL 'null')
java.io.IOException: Cannot create JDBC driver of class '' for connect URL 'null'
    at au.edu.unimelb.helper.SettingManager.loadSettings(SettingManager.java:212)
    at au.edu.unimelb.helper.SettingManager.<init>(SettingManager.java:53)

(And yes the odjbc6.jar file is in $TOMCAT_HOME/lib/)

Upvotes: 1

Views: 2909

Answers (2)

Markus Pscheidt
Markus Pscheidt

Reputation: 7331

There might be missing a <ResourceLink> in context.xml (either in the web application's META-INF/context.xml or in $TOMCAT_HOME/conf/context.xml, like so:

        <ResourceLink name="jdbc/mydb"
              type="javax.sql.DataSource"
              global="jdbc/mydb"/> 

Upvotes: 1

Jay
Jay

Reputation: 20126

Finally worked it out, the tomcat documentation was slightly misleading. You can put the contents of your META-INF/context.xml straight into $TOMCAT_HOME/conf/context.xml and it works just fine.

Upvotes: 5

Related Questions