Re: a little disillusioned

From: David Wilbur <wildboar(at)cybermesa(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: a little disillusioned
Date: 2004-01-27 02:01:08
Message-ID: AC13FEDE-506C-11D8-AC16-0003931D9176@cybermesa.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc


just wanted to mention that this person is not alone here.
unfortunately the docs as far as tomcat and postgres boils down to some
major hand waving. each relying on the other to work things out for
the other. mysql getting the best treatment from the tomcat people.

the os that i am running this on is:

mac os 10.3.2,

java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-99)
Java HotSpot(TM) Client VM (build 1.4.1_01-27, mixed mode)

tomcat was compiled from jakarta-tomcat-5.0.16-src.tar.gz where it
pulls all the files off the jakarta site.

postgresql 7.4.1

the following is a really trimmed down version of code from the tomcat
examples re jdbc connection pools:

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/postgres");
try {
Connection conn = ds.getConnection();
if(conn != null) {
foo = "Got Connection "+conn.toString();
Statement stmt = conn.createStatement();
ResultSet rst = stmt.executeQuery( "select id, foo, bar
from testdata" );
if(rst.next()) {
foo=rst.getString(2);
bar=rst.getInt(3);
}
conn.close();
} catch (SQLException e) {
foo = "SQLException: " + e;
}

results in a index.jsp showing this for foo...

SQLException: org.apache.commons.dbcp.SQLNestedException: Cannot load
JDBC driver class 'org.postgres.Driver', cause: org.postgres.Driver

when i go into the administration utility i find a definition for the
data source where the web app is defined under

"/Tomcat Server/Catalina/localhost/DBTest/Data Sources"

JNDI Name JDBC Driver Class
jdbc/postgres   org.postgres.Driver

delving into that i see this:

JNDI Name: jdbc/postgres
Data Source URL: jdbc:postgresql://127.0.0.1:5432/test
JDBC Driver Class: org.postgres.Driver
User Name: jakarta
Password: "the correct password"
Max. Active Connections: 20
Max. Idle Connections: 10
Max. Wait for Connection: 10000
Validation Query:

i modified the basic.java file that comes with the postgres jdbc driver
and ran it using the connection string above

jdbc:postgresql://127.0.0.1:5432/test

and that works fine using the same jar file that tomcat is using.

there is only one jar file in the tomcat directorys and it is located
at:

find $CATALINA_HOME -name "postgresql.jar"
/usr/local/jakarta/tomcat/common/lib/postgresql.jar

my class path has only ant and java home on it and i have checked to
see if the jar is there.

what i think would be really awesome is if one of you that have this
working could look at the tomcat "documentation" for setting up
postgres and tomcat and maybe helping them and us by maybe making it
more intelligible... cause it is a mess as it is now. in fact if
someone helps me work this out and they don't want to do it i will...
see:

http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-
examples-howto.html

maybe even adding the same advice to the postgres jdbc examples so that
we would have a starting point that we knew was working for someone...
this is a nice starting point, but... it might be nice to add in
something along the line of how to set up a java web server to use
postgres.

http://www.postgresql.org/docs/current/static/jdbc-datasource.html

i am suspecting that it is one of the xml files... either
$CATALINA_HOME/conf/server.xml or the apps WEB-INF/web.xml... but i
really don't know for sure what i might have wrong there.

thanks in advance,
dave

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Oliver Jowett 2004-01-27 03:12:33 Re: Patch to readd documentation
Previous Message Peter Eisentraut 2004-01-26 18:06:16 Re: Patch to readd documentation