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]