tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ruth, Brice" <br...@fiskars.com>
Subject Re: Tomcat Datasource -- please help..
Date Tue, 27 Jul 2004 15:40:38 GMT
Well, the way I do it is adding the data source using the admin tool, 
then adding a resource-ref to web.xml and a ResourceLink to the Context. 
This keeps things a bit cleaner in my opinion.

What you're doing should work .. but I can't really give you much more 
than that. Try defining it through the admin tool and following the 
instructions for adding a resource-ref to web.xml and a ResourceLink to 
your Context.

Shilpa Nalgonda wrote:

>As you have said i am getting "jdbc not bound" exception only.  But at one
>point i changed the env lookup to point to "prototypedb" instead of
>"jdbc/prototypedb".. so thats when i get prototypedb not bound error...
>
>Anyway do you think that i have put the context to the jndi resource in the
>wrong place in server.xml..
>where exactly should i add this in server.xml.
>
>if i add datasource using admin tool the jndi parameter gets added in
>GlobalNamingResouce.
>which is correct way...
>
>-----Original Message-----
>From: Ruth, Brice [mailto:bruth@fiskars.com]
>Sent: Tuesday, July 27, 2004 11:29 AM
>To: Tomcat Users List
>Subject: Re: Tomcat Datasource -- please help..
>
>
>I believe that should work. I'm out of ideas ... it seems strange that
>the Exception you're getting is complaining about "prototypedb" not
>being bound, instead of "jdbc" not being bound ... usually that comes
>first. That's the only thing that sticks out to me, but I don't really
>know what to make of it!
>
>Shilpa Nalgonda wrote:
>
>  
>
>>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:bruth@fiskars.com]
>>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:bruth@fiskars.com]
>>>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: tomcat-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
>  
>

-- 
Brice Ruth, Sr. IT Analyst
Fiskars Brands Inc
http://www.fiskarsbrands.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Mime
View raw message