Re: a little disillusioned - Mailing list pgsql-jdbc
From | Dave Cramer |
---|---|
Subject | Re: a little disillusioned |
Date | |
Msg-id | 1075265124.1610.339.camel@localhost.localdomain Whole thread Raw |
In response to | Re: a little disillusioned (David Wilbur <wildboar@cybermesa.com>) |
Responses |
Re: a little disillusioned
|
List | 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
pgsql-jdbc by date: