Re: a little disillusioned

From: David Wilbur <wildboar(at)cybermesa(dot)com>
To: "pgsql-jdbc (at) postgresql (dot) org" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: a little disillusioned
Date: 2004-01-28 01:46:15
Message-ID: C259254F-5133-11D8-9A8D-0003931D9176@cybermesa.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc


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

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message adp adp 2004-01-28 04:21:52 connectivity problem
Previous Message David Wilbur 2004-01-28 00:13:36 Re: a little disillusioned