Re: a little disillusioned - Mailing list pgsql-jdbc
| From | David Wilbur |
|---|---|
| Subject | Re: a little disillusioned |
| Date | |
| Msg-id | AC13FEDE-506C-11D8-AC16-0003931D9176@cybermesa.com Whole thread Raw |
| In response to | a little disillusioned ("Frequency UnKnown" <captainmofopants@hotmail.com>) |
| Responses |
Re: a little disillusioned
Re: a little disillusioned |
| List | pgsql-jdbc |
<fontfamily><param>Courier</param>
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"
<color><param>0000,0000,0000</param>JNDI Name JDBC Driver Class</color>
<color><param>5555,1A1A,8B8B</param>jdbc/postgres</color>
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
<x-tad-bigger>$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
</x-tad-bigger></fontfamily>
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
pgsql-jdbc by date: