4

After upgrading a system from Debian 6 (squeeze) to Debian 7 (wheezy), Tomcat7 cannot start the application. Did I miss a configuration file to be copied from the Tomcat6 directory structure into the Tomcat7 directories?

Catalina.out

The actual error is the ClassNotFoundException, as illustrated from the resulting catalina.out on startup, suggesting the postgresql driver is not in the .war file deployment:

    Feb 10, 2016 10:30:00 AM org.apache.catalina.startup.HostConfig deployWAR
    INFO: Deploying web application archive /var/lib/tomcat7/webapps/dwf.war
    Feb 10, 2016 10:30:00 AM org.apache.catalina.startup.SetContextPropertiesRule begin
    WARNING: [SetContextPropertiesRule]{Context} Setting property 'debug' to '1' did not find a matching property.
    Feb 10, 2016 10:30:03 AM org.apache.tomcat.jdbc.pool.ConnectionPool init
    SEVERE: Unable to create initial connections of pool.
    java.sql.SQLException: org.postgresql.Driver
        at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:254)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:486)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:144)
        at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116)
        at ....
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:278)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:246)
        ... 32 more

WEB-INF/lib

The postgresql .jar is in the .war deployment, as indicated by the directory listing:

root@app-02:/opt/tomcat/webapps/dwf/WEB-INF/lib# ls

antlr-2.7.6.jar
....
javassist-3.4.GA.jar         
postgresql-9.1-901.jdbc4.jar

Hibernate.cfg.xml

The hibernate.cfg.xml references the driver class and provides the username and password, so what am I missing?

root@app-02:/opt/tomcat/webapps/dwf# cat ./WEB-INF/classes/hibernate.cfg.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>

        <property name="hibernate.connection.username">usernameXXXXX</property>

        <!--PROD/DEV/QA-->
        <property name="hibernate.connection.password">passwordXXXXX</property>

        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
         <!-- Enable Hibernate's automatic session context management -->
         <property name="current_session_context_class">thread</property>

         <!-- Disable the second-level cache  -->
         <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

         <!-- Echo all executed SQL to stdout -->
         <property name="show_sql">false</property>

        <mapping resource="com/ph/dwf/common/db/Application.hbm.xml" />
        .....

1 Answer 1

4

Try to put your jar postgresql-9.1-901.jdbc4.jar Under ~\apache-tomcat-7.0.67\lib directly

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.