Question:Problems upgrading to tomcat 5.5

Edit

Question of the week #4

I recently upgraded from Tomcat 5 to Tomcat 5.5, my servlet generates a cryptic exception net.sf.hibernate.exception.GenericJDBCException: Cannot open connection

and from the connection pool like dbcp

Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class for connect URL 'null'

What happened?

Edit

Answer

Tomcat 5.5 introduced a new but very significant change to the servlet deployment configuration,. To fix this you need to change your context.xml file, eg yourapp.xml. At least in tomcat 5.5 this is copied over to /opt/oss/share/tomcat/base/conf/Catalina/localhost for you when deployed

Here is a before and after change

Before in 5.0

 <?xml version="1.0"?>
 <Context docBase="yourapp" path="/yourapp">
    <Resource name="jdbc/yourapp" scope="Shareable" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/yourapp">
        <parameter>
            <name>factory</name>
            <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>
        <parameter>
            <name>url</name>
            <value>jdbc:mysql://localhost:3306/yourapp?autoReconnect=true</value>
        </parameter>
        <parameter>
         <name>driverClassName</name><value>com.mysql.jdbc.Driver</value>
        </parameter>
        <parameter>
            <name>username</name>
            <value>youruser</value>
        </parameter>
        <parameter>
            <name>password</name>
            <value>yourpassword</value>
        </parameter>
        <parameter>
            <name>maxIdle</name>
            <value>5</value>
        </parameter>
        <parameter>
            <name>maxActive</name>
            <value>50</value>
        </parameter>
    </ResourceParams>
 </Context>

After in 5.5

 <?xml version="1.0"?>
 <Context docBase="yourapp" path="/yourapp">

    <Resource name="jdbc/yourapp" scope="Shareable" type="javax.sql.DataSource"
            factory="org.apache.commons.dbcp.BasicDataSourceFactory"
            url="jdbc:mysql://localhost:3306/yourapp?autoReconnect=true"
            driverClassName="com.mysql.jdbc.Driver"
            username="youruser"
            password="yourpassword"
            maxIdle="5"
            maxActive="50"
    />
 </Context>

Most Recent

Most Popular

Most Active Categories




Back To Top Add New Article Printable Page

Questions

MediaWiki

This page has been accessed 9,638 times.

This page was last modified 15:17, 28 November 2005.