Below is the code i am using to get the connection, and datasource... Context ctx = new InitialContext(); Context env = (Context)ctx.lookup("java:comp/env"); DataSource ds = (DataSource) env.lookup("jdbc/prototypedb"); conn = ds.getConnection();
-----Original Message----- From: Ruth, Brice [mailto:[EMAIL PROTECTED] Sent: Tuesday, July 27, 2004 11:07 AM To: Tomcat Users List Subject: Re: Tomcat Datasource -- please help.. I believe if you're defining your DataSource in the <Context> directly, not in the Global Naming Resources, then you do not need the <resource-ref> in web.xml, nor the <ResourceLink> mentioned below. What code are you using to get to your connection? The JNDI lookup should be to java:comp/env/jdbc/prototypedb, in your particular case. Respectfully, Brice Ruth Shilpa Nalgonda wrote: >I have defined the resource in web.xml as below... and also defined the >datasouce resources under context in server.xml... even then it does not >help.. I get the same error "org.apache.jasper.JasperException: Name >prototypedb is not bound in this Context" > Web.xml >================================================ ><web-app> ><description>PrototypeDB Test App</description> > <resource-ref> > <description>DB Connection</description> ><res-ref-name>jdbc/prototypedb</res-ref-name> > <res-type>javax.sql.DataSource</res-type> > <res-auth>Container</res-auth> > </resource-ref> > </web-app> >======================================================= >server.xml >========== ><!-- JNDI datasource setup to connect to MYSQL database--> > <Context path="/PrototypeDBTest" docBase="PrototypeDBTest" > debug="5" reloadable="true" crossContext="true" >useNaming="true"> > > <Logger className="org.apache.catalina.logger.FileLogger" > prefix="localhost_PrototypeDBTest_log." suffix=".txt" > timestamp="true"/> > <Resource name="jdbc/prototypedb" > auth="Container" > type="javax.sql.DataSource"/> > > <ResourceParams name="jdbc/prototypedb"> > <parameter> > <name>factory</name> > <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> > </parameter> > > <!-- Maximum number of dB connections in pool. Make sure you > configure your mysqld max_connections large enough to handle > all of your db connections. Set to 0 for no limit. > --> > <parameter> > <name>maxActive</name> > <value>100</value> > </parameter> > > <!-- Maximum number of idle dB connections to retain in pool. > Set to 0 for no limit. > --> > <parameter> > <name>maxIdle</name> > <value>30</value> > </parameter> > > <!-- Maximum time to wait for a dB connection to become >available > in ms, in this example 10 seconds. An Exception is thrown if > this timeout is exceeded. Set to -1 to wait indefinitely. > --> > <parameter> > <name>maxWait</name> > <value>10000</value> > </parameter> > > <!-- MySQL dB username and password for dB connections --> > <parameter> > <name>username</name> > <value>antonio</value> > </parameter> > <parameter> > <name>password</name> > <value>play</value> > </parameter> > > <!-- Class name for mm.mysql JDBC driver --> > <parameter> > <name>driverClassName</name> > <value>org.gjt.mm.mysql.Driver</value> > </parameter> > > <!-- The JDBC connection url for connecting to your MySQL dB. > The autoReconnect=true argument to the url makes sure that the > mm.mysql JDBC Driver will automatically reconnect if mysqld >closed the > connection. mysqld by default closes idle connections after 8 >hours. > --> > <parameter> > <name>url</name> > ><value>jdbc:mysql://localhost:3306/prototypedb?autoReconnect=true</value > > > </parameter> ></ResourceParams> ></Context> > >======================================================================== >========= > >-----Original Message----- >From: Ruth, Brice [mailto:[EMAIL PROTECTED] >Sent: Tuesday, July 27, 2004 10:04 AM >To: Tomcat Users List >Subject: Re: Tomcat Datasource > >In addition to defining the DataSource in Tomcat's admin tool, you'll >need to define the Resource in you web.xml - something like this: > > <resource-ref> > <!-- optional --> > <description> > Resource reference to a factory for java.sql.Connection > instances that may be used for talking to a particular > database that is configured in the server.xml file. > </description> > <!-- local JNDI name to use in JSPs, servlets, etc. --> > <res-ref-name> > jdbc/phone > </res-ref-name> > <res-type> > javax.sql.DataSource > </res-type> > <res-auth> > Container > </res-auth> > </resource-ref> > >You'll also need to define a ResourceLink in your Context, that links >what you want to call your DataSource locally (used in web.xml, see >above) to what you called your DataSource in the admin tool (globally >... these can be the same, but don't have to be). Something like this: > > <ResourceLink global="jdbc/phone" name="jdbc/phone" >type="javax.sql.DataSource"/> > >The 'global' attribute provides the name of the global JNDI resource >(what was defined in the admin tool); 'name' provides the name of the >local JNDI resource (what will be referenced in web.xml). > >That's it! You shouldn't have any problems once you've done this. > >Respectfully, >Brice Ruth > > > >Bussie, Andre D wrote: > > > >>I'm using Tomcat 5.0.19. I configured a datasource via the Tomcat Admin >>tool to configure a datatsource listed below is the server.xml file >>settings for the datasource >> >><GlobalNamingResources> >> >> <Resource name="jdbc/phone" auth="Container" >>type="javax.sql.DataSource" description="Database for the phone >>application" /> >> >> <ResourceParams name="jdbc/phone"> >> >> <parameter> >> >> <name>maxWait</name> >> >> <value>5000</value> >> >> </parameter> >> >> <parameter> >> >> <name>maxActive</name> >> >> <value>4</value> >> >> </parameter> >> >> <parameter> >> >> <name>password</name> >> >> <value></value> >> >> </parameter> >> >> <parameter> >> >> <name>url</name> >> >> <value>jdbc:hsqldb.hsql://localhost</value> >> >> </parameter> >> >> <parameter> >> >> <name>driverClassName</name> >> >> <value>org.hsqldb.jdbcDriver</value> >> >> </parameter> >> >> <parameter> >> >> <name>maxIdle</name> >> >> <value>2</value> >> >> </parameter> >> >> <parameter> >> >> <name>username</name> >> >> <value>sa</value> >> >> </parameter> >> >> </ResourceParams> >> >> </GlobalNamingResources> >> >> >> >>However when I try to access the datasource from a jsp file I get the >>following error >> >>2004-07-26 10:42:19 StandardWrapperValve[jsp]: Servlet.service() for >>servlet jsp threw exception >> >>javax.naming.NameNotFoundException: Name jdbc/phone is not bound in >> >> >this > > >>Context >> >> >> >>Code snippet listed below >> >><% InitialContext ctx = new InitialContext(); >> >> DataSource ds = >>(DataSource)ctx.lookup("java:comp/env/jdbc/phone"); >> >> Connection conn = ds.getConnection(); >> >> try{ >> >> >> >>Any suggestions on what can be causing this error. Why isn't in the >>context and how do I bind it to the context? >> >> >> >> >> >> >> >> >> >> > > > -- Brice Ruth, Sr. IT Analyst Fiskars Brands Inc http://www.fiskarsbrands.com/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]