Re: Tomcat - PostgreSQL - Cannot load JDBC driver class "n - Mailing list pgsql-jdbc
From | Andreas Prohaska |
---|---|
Subject | Re: Tomcat - PostgreSQL - Cannot load JDBC driver class "n |
Date | |
Msg-id | A11D9B8C48C1D411AE0C000062A129947B1C93@ganymed.allocation.net Whole thread Raw |
Responses |
Tomcat - PostgreSQL - Perfomance Tunning
|
List | pgsql-jdbc |
Hm, what a strange and weird problem you are having. Your setup is look exactly the same as mine. When you start Tomcat and have a look at it's log, what does the log say about the configured resources. Is it something like this: NamingContextListener[...]: Creating JNDI naming context NamingContextListener[...]: Resource parameters for jdbc/PersonalDb= ResourceParams[name=jdbc/PersonalDb, NamingContextListener[...]: Adding resource ref jdbc/PersonalDb NamingContextListener[...]: ResourceRef[className=javax.sql.DataSource,....... NamingContextListener[...]: Resource parameters for UserTransaction = null which would be ok, or more something like that NamingContextListener[...]: Creating JNDI naming context NamingContextListener[...]: Resource parameters for jdbc/PersonalDb= null NamingContextListener[...]: Adding resource ref jdbc/PersonalDb NamingContextListener[...]: ResourceRef[className=javax.sql.DataSource,... NamingContextListener[...]: Resource parameters for UserTransaction = null which would be wrong, because it doesn't assign the resource parameters. Besides that you seem to have multiple versions of some libraries in your common/lib directory. Although it should still work, I would remove those copies. Who knows? It might help. You don't have to do anything with your classpath. I think that there is a problem if you do not have compatible versions of commons-dbpc.jar and commons-pool.jar. As far as I can remember there have been some bugfixes for DBPC that are only available in a nightly build (not the release version), but the nightly build requires a not yet released version of commons-pool. However, it should report this with an exception, shouldn't it? Sorry, that I can only guess... Andreas -----Ursprüngliche Nachricht----- Von: CRAIG GOLBY [mailto:craig@golby.me.uk] Gesendet: Freitag, 26. September 2003 18:30 An: pgsql-jdbc@postgresql.org Betreff: [JDBC] Tomcat - PostgreSQL - Cannot load JDBC driver class "null" Help, I am tearing my hair out. I am a newbie to Linux and Tomcat, and am therefore amazed that I have got as far as I have, that said I now seem to be stuck in front of a brick wall, with no ladder !! Tomcat 4.1.24 is running on ServerOne (Red Hat 9), it is currently serving out a couple of very basic JSP's and seems to be working quite well. ServerOne also has J2SDK 1.4.1_03 installed. PostgreSQL 7.3 is running on ServerTwo (Red Hat 9). Have also installed pgAdminIII on both a Windows Laptop and ServerTwo. The Laptop version works fine, if a little unstable, so TCP/IP connectivity is working fine. Within PostgreSQL I have created a new Db called "PersonalDb", within the public Schema I have created a table called "testOne". TestOne has three columns, Id, FieldOne and DateStamp, and there are currently 2 rows of data within the table Sample of code used is below, along with a list of the Jar files in common/lib. I have read through so many mailing lists now and tried so many things that I dont know what I have and havent done, am fairly sure that it is either a configuration issue or a missing file so will no doubt kick myself when I find out the answer. Any assistance would be greatly appreciated. Regards Craig ******************************************************* Server XML :- Tomcat/conf ******************************************************* <Context path="/DBTest" docBase="DBTest" debug="5" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/> <Resource name="jdbc/PersonalDb" type="javax.sql.DataSource" auth="Container"/> <ResourceParams name="jdbc/PersonalDb"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>driverClassName</name> <value>org.postgresql.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:postgresql://ServerTwo:5432/PersonalDb</value> </parameter> <parameter> <name>username</name> <value>myUser</value> </parameter> <parameter> <name>password</name> <value>myPassword</value> </parameter> <parameter> <name>maxActive</name> <value>10</value> </parameter> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <parameter> <name>maxWait</name> <value>10000</value> </parameter> </ResourceParams> </Context> </Host> </Engine> </Service> ******************************************************* Web XML :- Tomcat/webapps/root/WEB-INF ******************************************************* <description>PostgreSQL Test App</description> <resource-ref> <description>postgreSQL Datasource example</description> <res-ref-name>jdbc/PersonalDb</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ******************************************************* My Class File ******************************************************* public void init() { try{ Context ctx = new InitialContext(); if(ctx == null ) throw new Exception("Boom - No Context"); status = "checking CTX"; DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/PersonalDb"); status = "Completing Lookup of CTX"; if (ds != null) { status = "Creating Connection"; Connection conn = ds.getConnection(); <----- FAILS HERE status = "Created Connection"; if(conn != null) { foo = "Got Connection "+conn.toString(); Statement stmt = conn.createStatement(); ResultSet rst = stmt.executeQuery( "select Id, FieldOne, DateStamp from Public.testOne"); status = "Completing Select"; if(rst.next()) { foo=rst.getString(2); bar=rst.getInt(3); } status = "Looped through Resultset"; conn.close(); } } else {status = "Fell into Else";} }catch(Exception e) { e.printStackTrace(); status = status + ", now in exception block :-" + e.toString(); } } ******************************************************* Class Files in Tomcat/common/lib ******************************************************* activation.jar ant.jar collections-2.1.jar commons-collections.jar commons-dbcp-1.0.jar commons-dbcp.jar commons-logging-api.jar commons-pool.jar jasper-compiler.jar jasper-runtime.jar jdbc2_0-stdext.jar jndi.jar jta.jar mail.jar naming-common.jar naming-factory.jar naming-resources.jar pg73jdbc3.jar pool-1.0.1.jar postgresql.jar (Copy of pg73jdbc3.jar) servlet.jar
pgsql-jdbc by date: