Re: a little disillusioned

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: David Wilbur <wildboar(at)cybermesa(dot)com>
Cc: "pgsql-jdbc (at) postgresql " "(dot) org" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: a little disillusioned
Date: 2004-01-28 04:45:24
Message-ID: 1075265124.1610.339.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

attached is a working server.xml. The context that has the jdbc
datasource is /examples

I placed the postgresql.jar into common, however I expect it would work
in other places.

Dave

On Tue, 2004-01-27 at 20:46, David Wilbur wrote:
> at the risk of being over kill ... i started over from scratch after
> getting the mysql version working... on the first try.
>
>
>
> here is the layout of the files in the project directory i have (and is
> the same for the mysql project except it is DBTest)
>
> ./build
> ./build/index.jsp
> ./build/WEB-INF
> ./build/WEB-INF/classes
> ./build/WEB-INF/classes/foo
> ./build/WEB-INF/classes/foo/PGTest.class
> ./build/WEB-INF/lib
> ./build/WEB-INF/web.xml
> ./build.xml
> ./src
> ./src/foo
> ./src/foo/PGTest.java
> ./web
> ./web/index.jsp
> ./web/WEB-INF
> ./web/WEB-INF/web.xml
>
>
> the build.xml file has one line changed in it from the one that the
> tomcat doc suggests you use:
>
> <property name="catalina.home" value="/usr/local/jakarta/tomcat"/>
>
>
> after i build i
>
> cp -r build $CATALINA_HOME/webapps/PGTest
>
> and then
>
> $CATALINA_HOME/bin/startup.sh
>
> which results in the page saying that you are not connected... but in
> reality is not finding the driver if i place a try block around
> Connection conn = ds.getConnection();
>
>
>
>
>
> here are the relevant files in the reworked version:
>
>
> more ./web/WEB-INF/web.xml
>
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <!DOCTYPE web-app PUBLIC
> "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
> "http://java.sun.com/dtd/web-app_2_3.dtd">
> <web-app>
> <description>PostgreSQL Test App</description>
> <resource-ref>
> <description>PG DB Connection</description>
> <res-ref-name>jdbc/TestPG</res-ref-name>
> <res-type>javax.sql.DataSource</res-type>
> <res-auth>Container</res-auth>
> </resource-ref>
> </web-app>
>
>
>
> more ./web/index.jsp
>
>
> <html>
> <head>
> <title>PG Test</title>
> </head>
> <body>
>
> <%
> foo.PGTest tst = new foo.PGTest();
> tst.init();
> %>
>
> <h2>Results</h2>
> Foo <%= tst.getFoo() %><br/>
> Bar <%= tst.getBar() %>
>
> </body>
> </html>
>
>
>
> more ./src/foo/PGTest.java
>
>
> package foo;
>
> import javax.naming.*;
> import javax.sql.*;
> import java.sql.*;
>
> public class PGTest {
>
> String foo = "Not Connected";
> int bar = -1;
>
> public void init() {
> try{
> Context ctx = new InitialContext();
> if(ctx == null )
> throw new Exception("Boom - No Context");
>
> DataSource ds =
> (DataSource)ctx.lookup(
> "java:comp/env/jdbc/TestPG");
>
> if (ds != null) {
> 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(Exception e) {
> e.printStackTrace();
> }
> }
>
> public String getFoo() { return foo; }
> public int getBar() { return bar;}
> }
>
>
>
> cat /usr/local/jakarta/tomcat/conf/server.xml
>
> [snip]
>
> <Context path="/PGTest" docBase="PGTest" debug="5" reloadable="true"
> crossContext="true">
>
> <Logger className="org.apache.catalina.logger.FileLogger"
> prefix="localhost_PGTest_log." suffix=".txt" timestamp="true"/>
>
> <Resource name="jdbc/TestPG" auth="Container"
> type="javax.sql.DataSource"/>
>
> <ResourceParams name="jdbc/TestPG">
> <parameter>
> <name>factory</name>
> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
> </parameter>
>
> <parameter>
> <name>maxActive</name>
> <value>100</value>
> </parameter>
>
> <parameter>
> <name>maxIdle</name>
> <value>30</value>
> </parameter>
>
> <parameter>
> <name>maxWait</name>
> <value>10000</value>
> </parameter>
>
> <parameter>
> <name>username</name>
> <value>jakarta</value>
> </parameter>
> <parameter>
> <name>password</name>
> <value>tomcat</value>
> </parameter>
>
> <parameter>
> <name>driverClassName</name>
> <value>org.postgres.Driver</value>
> </parameter>
>
> <parameter>
> <name>url</name>
> <value>jdbc:postgresql://127.0.0.1:5432/test</value>
> </parameter>
> </ResourceParams>
> </Context>
>
> [snip]
>
>
>
> here is the environment that the server is started with:
>
>
>
> ANT_HOME=/usr/local/jakarta/ant
> BASH=/bin/bash
> BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release"
> [5]="powerpc-apple-darwin7.0")
> BASH_VERSION='2.05b.0(1)-release'
> CATALINA_HOME=/usr/local/jakarta/tomcat
> CLASSPATH=/Library/Java/Home/lib:/usr/local/jakarta/ant/lib
> COLUMNS=141
> DIRSTACK=()
> DYLD_LIBRARY_PATH=/usr/local/lib:/usr/X11R6/lib:/usr/lib:/usr/local/
> pgsql/lib:/usr/local/mysql/lib
> EUID=504
> GROUPS=()
> HISTFILE=/Users/jakarta/.bash_history
> HISTFILESIZE=500
> HISTSIZE=500
> HOME=/Users/jakarta
> HOSTNAME=Halley.local
> HOSTTYPE=powerpc
> IFS=$' \t\n'
> JAVA_HOME=/Library/Java/Home
> LINES=76
> MACHTYPE=powerpc-apple-darwin7.0
> MAILCHECK=60
> MANPATH=/usr/local/man:/usr/X11R6/man:/usr/share/man:/usr/local/pgsql/
> man:/usr/local/mysql/man
> MYSQL_DATA=/usr/local/mysql/var
> MYSQL_HOME=/usr/local/mysql
> OLDPWD=/Users/jakarta/Projects
> OPTERR=1
> OPTIND=1
> OSTYPE=darwin7.0
> PATH=/usr/local/bin:/usr/X11R6/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/
> local/jakarta/ant/bin:/usr/local/pgsql/bin:/usr/local/mysql/bin
> PGDATA=/usr/local/pgsql/data
> PGHOME=/usr/local/pgsql
> PIPESTATUS=([0]="0")
> PPID=8049
> PS1='\h:\w \u\$ '
> PS2='> '
> PS4='+ '
> PWD=/Users/jakarta/Projects/jakarta
> SHARED_SETUP_FILES=/usr/local/share/setup
> SHELL=/bin/bash
> SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-
> comments:monitor
> SHLVL=1
> TERM=xterm-color
> UID=504
> USER=jakarta
> _=pgtest.junk/src/foo/DBTest.java
>
>
>
> here is an example that demonstrates that out of tomcat that the
> postgres.jar that is in the proper place for tomcat works for a
> regular java app and that the account and url in the xml files are
> correct:
>
> echo $CLASSPATH
> /Library/Java/Home/lib:/usr/local/jakarta/ant/lib
>
> export
> CLASSPATH=${CLASSPATH}:/usr/local/jakarta/tomcat/common/lib/
> postgresql.jar:.
>
> javac -classpath ${CLASSPATH} example/basic.java
> Note: example/basic.java uses or overrides a deprecated API.
> Note: Recompile with -deprecation for details.
>
> java example.basic jdbc:postgresql://127.0.0.1:5432/test jakarta tomcat
> PostgreSQL basic test v6.3 rev 1
>
> Connecting to Database URL = jdbc:postgresql://127.0.0.1:5432/test
> Connected...Now creating a statement
>
> Running tests:
> Inserted row with oid 17246
> Updated 4 rows
> deleted 2 rows
> performing a query
> a=3 b=8
> a=4 b=8
> a=4 b=2
> a=4 b=3
> a=4 b=4
> performing another query
> a=3 b=8
> a=4 b=8
> a=4 b=2
> a=4 b=3
> a=4 b=4
> performing a query limited to 3
> a=3 b=8
> a=4 b=8
> a=4 b=2
> Now closing the connection
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
--
Dave Cramer
519 939 0336
ICQ # 1467551

Attachment Content-Type Size
server.xml text/xml 10.2 KB

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Kris Jurka 2004-01-28 06:36:10 Re: connectivity problem
Previous Message adp adp 2004-01-28 04:21:52 connectivity problem