Thread: JNDI Datasource example
Does anyone have a GOOD example of PostgreSQL with Tomcat using JNDI? I was looking at http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html but the code they provided really did not help. If someone has some code please post it. Thanks in advance!
Mag Gam wrote: >Does anyone have a GOOD example of PostgreSQL with Tomcat using JNDI? I >was looking at >http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html >but the code they provided really did not help. If someone has some code >please post it. Thanks in advance! > > Just case you were using the same approach as I did and used the tomcat admin application to create the JNDI resource Lets assume a datasource named "jdbc/testds" and a context named "testctx" put your postgres jdbc driver into $TOMCAT/common/lib, restart Tomcat Create the datasource using the tomcat admin application, use org.postgresql.Driver as driverClass and jdbc:postgresql://localhost/<database> as URL insert the following in your applications WEB-INF/web.xml: <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/testds</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> Create a META-INF/context.xml and insert: <Context path="/testctx" reloadable="true"> <ResourceLink name="jdbc/testds" global="jdbc/testds" type="javax.sql.DataSource"/> </Context> Use the following code to lookup the datasource: try{ Context ctx = new InitialContext(); if(ctx == null ) throw new Exception("JNDI could not create InitalContext "); Context envContext = (Context)ctx.lookup("java:/comp/env"); datasource = (DataSource)envContext.lookup(jndiName); } catch(Exception e) { e.printStackTrace(); } this works for me... cu Harry
When I run this code snipnet, I get this problem. symbol : variable datasource location: class Test datasource = (DataSource)envContext.lookup(jndiName); ^ Test.java:22: cannot resolve symbol symbol : variable jndiName location: class Test datasource = (DataSource)envContext.lookup(jndiName); echo $CLASSPATH /usr/local/j2sdk1.4.2_05/lib/tools.jar:/usr/local/j2sdk1.4.2_05/jre/lib/rt.jar:/usr/local/jakarta-tomcat-4.1.30/common/lib/servlet.jar:/usr/local/jakarta-tomcat-4.1.30/common/lib/pg74.215.jdbc3.jar I looked everywhere, still problems with this datasource. Thanks! On Sat, 28 Aug 2004 01:33:51 +0200, "Harry Schittler" <hs@multimedia-werkstatt.com> said: > Mag Gam wrote: > > >Does anyone have a GOOD example of PostgreSQL with Tomcat using JNDI? I > >was looking at > >http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html > >but the code they provided really did not help. If someone has some code > >please post it. Thanks in advance! > > > > > Just case you were using the same approach as I did and used the tomcat > admin application to create the JNDI resource > > Lets assume a datasource named "jdbc/testds" and a context named > "testctx" > > put your postgres jdbc driver into $TOMCAT/common/lib, restart Tomcat > > Create the datasource using the tomcat admin application, use > org.postgresql.Driver as driverClass and > jdbc:postgresql://localhost/<database> as URL > > insert the following in your applications WEB-INF/web.xml: > <resource-ref> > <description>DB Connection</description> > <res-ref-name>jdbc/testds</res-ref-name> > <res-type>javax.sql.DataSource</res-type> > <res-auth>Container</res-auth> > </resource-ref> > > Create a META-INF/context.xml and insert: > <Context path="/testctx" reloadable="true"> > <ResourceLink name="jdbc/testds" global="jdbc/testds" > type="javax.sql.DataSource"/> > </Context> > > > Use the following code to lookup the datasource: > try{ > Context ctx = new InitialContext(); > if(ctx == null ) > throw new Exception("JNDI could not create InitalContext "); > > Context envContext = (Context)ctx.lookup("java:/comp/env"); > datasource = (DataSource)envContext.lookup(jndiName); > > } catch(Exception e) { > e.printStackTrace(); > } > > this works for me... > > cu Harry
Mag Gam wrote: >When I run this code snipnet, I get this problem. > > >symbol : variable datasource >location: class Test > datasource = (DataSource)envContext.lookup(jndiName); > ^ >Test.java:22: cannot resolve symbol >symbol : variable jndiName >location: class Test > datasource = (DataSource)envContext.lookup(jndiName); > > >echo $CLASSPATH >/usr/local/j2sdk1.4.2_05/lib/tools.jar:/usr/local/j2sdk1.4.2_05/jre/lib/rt.jar:/usr/local/jakarta-tomcat-4.1.30/common/lib/servlet.jar:/usr/local/jakarta-tomcat-4.1.30/common/lib/pg74.215.jdbc3.jar > > >I looked everywhere, still problems with this datasource. > > Replace the variable jndiName with "jdbc/testds", sorry I missed this one.. cu Harry
Harry, Thanks. Looks like the code compiles fine. However, I get no response from postgresql (logs). Do you have a full blown Java example, instead of a small code snipet? I think I am doing something wrong with my code. Thanks in advance. On Sat, 28 Aug 2004 15:44:43 +0200, "Harry Schittler" <hs@multimedia-werkstatt.com> said: > Mag Gam wrote: > > >When I run this code snipnet, I get this problem. > > > > > >symbol : variable datasource > >location: class Test > > datasource = (DataSource)envContext.lookup(jndiName); > > ^ > >Test.java:22: cannot resolve symbol > >symbol : variable jndiName > >location: class Test > > datasource = (DataSource)envContext.lookup(jndiName); > > > > > >echo $CLASSPATH > >/usr/local/j2sdk1.4.2_05/lib/tools.jar:/usr/local/j2sdk1.4.2_05/jre/lib/rt.jar:/usr/local/jakarta-tomcat-4.1.30/common/lib/servlet.jar:/usr/local/jakarta-tomcat-4.1.30/common/lib/pg74.215.jdbc3.jar > > > > > >I looked everywhere, still problems with this datasource. > > > > > Replace the variable jndiName with "jdbc/testds", sorry I missed this > one.. > > cu Harry