commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Grogan <mgro...@mobilegolfers.net>
Subject Re: [DBCP] Beginner how-to
Date Tue, 29 Nov 2005 11:57:45 GMT
Ok, I think there is a small sign of some progress. Where before I was 
just getting null, now at least I'm getting a driver not found error:
    Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
I've made sure the connector JAR is in the CATALINA_HOME/common/lib 
folder (I've also tried putting it in WEB-INF/lib but that didn't help).
Again, when I use the old approach of using the DriverManager to load 
the driver, all works well.
I've attached the context.xml and index.java files if anyone has the 
time to see where this might be going wrong.
Thank you all for your time with this problem,
Martin


Allistair Crossley wrote:

>You need to be careful with deployment. You should avoid using
>server.xml for defining your Context. Instead, create a folder called
>META-INF inside your webapp's top folder and in there add a file called
>context.xml. Add your Context config into this. Also if you have
>declared any GlobalResources in server.xml that you need to link to
>you'd need to add ResourceLink config to point at them from this
>context.xml.
>
>Allistair.
>
>-----Original Message-----
>From: Martin Grogan [mailto:mgrogan@mobilegolfers.net] 
>Sent: 29 November 2005 11:20
>To: Jakarta Commons Users List
>Subject: Re: [DBCP] Beginner how-to
>
>Hi all again,
>I've followed Allistair's suggestion, since it seems to be closest to
>what I've read on the Internet already, however, there is still no luck.
>
>One thing that appears strange is that the modifications I make to
>server.xml disappear each time I re-deploy the test application. I
>suspect this may be the problem, but don't know why that would be
>happening?
>Martin
>
>
>Allistair Crossley wrote:
>
>  
>
>>Assuming you configured the Resource with a name jdbc/mydb, the 
>>following servlet skeleton can be used .. This is typed out quickly so 
>>check it for errors.
>>
>>public class DataSourceServlet extends HttpServlet {
>>
>> private static DataSource dataSource;
>>
>> public void init() {
>>       try {
>>           Context ctx = new InitialContext();
>>           this.dataSource = (DataSource) 
>>ctx.lookup("java:comp/env/jdbc/mydb");
>>       } catch (Exception e) {
>>       	// log the error
>>       }
>>   super.init();
>> }
>>
>> public void doGet(HttpServletRequest request, HttpServletResponse
>>response) throws ServletException {
>>   doPost(request, response);
>> }
>>
>> public void doPost(HttpServletRequest request, HttpServletResponse
>>response) throws ServletException {
>>
>>   Connection connection = null;
>>   try {
>>     connection = dataSource.getConnection();
>>   } catch (SQLException sqlE) {
>>   } finally {
>>     connection.close();
>>   }
>> }
>>
>> public void destroy() {
>>   dataSource = null;
>> }
>>}
>>
>>-----Original Message-----
>>From: Martin Grogan [mailto:mgrogan@mobilegolfers.net]
>>Sent: 29 November 2005 10:43
>>To: Jakarta Commons Users List
>>Subject: Re: [DBCP] Beginner how-to
>>
>>Hi Allistair,
>>Thanks for the help. I've downloaded and installed all the relevant 
>>JAR's and edited the server.xml (correctly I hope, I can forward if you
>>    
>>
>
>  
>
>>like?).
>>I've also created a simple database just to test the app.
>>However, I'm lost when it comes to writing a basic servet that just 
>>opens the connection, executes a query and closes the connection. There
>>    
>>
>
>  
>
>>are several (conflicting) resources on the web describing how to do 
>>this (some use JSP's which I don't use). In particular, the init() and
>>destroy() events seem to be causing me confusion, In my main doGet 
>>method, I have something like :
>>try
>>       {           
>>           Connection connection= ??? need to get a connection from 
>>the pool here
>>           Statement statement=connection.createStatement();
>>           String query="SELECT name,age FROM test";
>>           ResultSet r=statement.execute(query);
>>           while(r.next())
>>               out.println(r.getString(1)+", "+r.getString(2));
>>           statement.close();
>>       }
>>       catch(Exception e) { out.println(e.getMessage()); }
>>
>>Any ideas?
>>Thanks,
>>Martin
>>
>>
>>
>>Allistair Crossley wrote:
>>
>> 
>>
>>    
>>
>>>There's a really nice way to get Tomcat to manage your database pool 
>>>for you with it's built-in DBCP support. This method is detailed in 
>>>the
>>>   
>>>
>>>      
>>>
>> 
>>
>>    
>>
>>>Tomcat pages
>>>
>>>http://tomcat.apache.org/tomcat-5.0-doc/jndi-datasource-examples-howto
>>>      
>>>
>.
>  
>
>>>h
>>>tml
>>>
>>>In a nuthell, you put your database driver JAR into tomcat/common/lib 
>>>and take it out of your webapp's WEB-INF/lib. You then declare a 
>>>configuration block for a Resource which tells Tomcat to create an 
>>>instance of a DBCP database pool. Then, in your servlets you would 
>>>have
>>>   
>>>
>>>      
>>>
>> 
>>
>>    
>>
>>>a static member of type DataSource which you would set with a JNDI 
>>>lookup for the Resource in the servlet init method. Then, anytime you 
>>>needed a connection you call dataSource.getConnection(). You still 
>>>need
>>>   
>>>
>>>      
>>>
>> 
>>
>>    
>>
>>>to close your connections however to return them to the pool. Your 
>>>servlet destroy method would need to close the dataSource, or at least
>>>      
>>>
>
>  
>
>>>set it to null as it will leak being static otherwise on reloads of 
>>>the
>>>   
>>>
>>>      
>>>
>> 
>>
>>    
>>
>>>webapp.
>>>
>>>Cheers, Allistair
>>>
>>>-----Original Message-----
>>>From: Martin Grogan [mailto:mgrogan@mobilegolfers.net]
>>>Sent: 29 November 2005 09:31
>>>To: Jakarta Commons Users List
>>>Subject: Re: [DBCP] Beginner how-to
>>>
>>>Yes, using Tomcat 5.0.28,
>>>
>>>
>>>Allistair Crossley wrote:
>>>
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>Are you using Tomcat? 
>>>>
>>>>-----Original Message-----
>>>>From: Martin Grogan [mailto:mgrogan@keizensoftware.com]
>>>>Sent: 29 November 2005 09:27
>>>>To: Jakarta Commons Users List
>>>>Subject: [DBCP] Beginner how-to
>>>>
>>>>Hi all,
>>>>I'm a complete beginner with commons DBCP and unsure where to start. 
>>>>I
>>>>     
>>>>
>>>>        
>>>>
>> 
>>
>>    
>>
>>>>require connection pooling to increase performance of my web 
>>>>application.
>>>>All elements of my application are servlets (no EJB's, no JSP's) and 
>>>>for each servlet, I basically do the old-fashioned thing...
>>>>1. Open connection to data source (mySQL) 2. Create statement 3. 
>>>>Execute a pile of queries 4. Close statement 5. Close connection I am
>>>>        
>>>>
>
>  
>
>>>>using Tomcat 5.0.28 and mysql-connector-java-3.1.8. We are not using 
>>>>any dedicated web-server like Apache, just Tomcat.
>>>>Can anyone tell my what I need to do to start using connection 
>>>>pooling
>>>>     
>>>>
>>>>        
>>>>
>> 
>>
>>    
>>
>>>>in my applications? Maybe some sample servlet code, and server 
>>>>configuration, JAR's I need, etc.
>>>>I'm basically an old ASP programmer that's picked up Java and now am 
>>>>trying to do things the Java way.
>>>>Thanks,
>>>>Martin
>>>>
>>>>
>>>>-----------
>>>>Martin Grogan
>>>>Keizen Software
>>>>
>>>>mgrogan@keizensoftware.com
>>>>www.keizensoftware.com
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: commons-user-help@jakarta.apache.org
>>>>
>>>>
>>>>
>>>>
>>>>
>>>><FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE>
>>>>-------------------------------------------------------
>>>>QAS Ltd.
>>>>Registered in England: No 2582055
>>>>Registered in Australia: No 082 851 474
>>>>-------------------------------------------------------
>>>></FONT> <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLACK>
>>>>Disclaimer:  The information contained within this e-mail is
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>confidential and may be privileged. This email is intended solely for 
>>>the named recipient only; if you are not authorised you must not 
>>>disclose, copy, distribute, or retain this message or any part of it.
>>>If you have received this message in error please contact the sender 
>>>at
>>>   
>>>
>>>      
>>>
>> 
>>
>>    
>>
>>>once so that we may take the appropriate action and avoid troubling 
>>>you
>>>   
>>>
>>>      
>>>
>> 
>>
>>    
>>
>>>further.  Any views expressed in this message are those of the 
>>>individual sender.  QAS Limited has the right lawfully to record, 
>>>monitor and inspect messages between its employees and any third
>>>      
>>>
>party.
>  
>
>>>Your messages shall be subject to such lawful supervision as QAS 
>>>Limited deems to be necessary in order to protect its information, its
>>>      
>>>
>
>  
>
>>>interests and its reputation.
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>Whilst all efforts are made to safeguard Inbound and Outbound emails,
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>QAS Limited cannot guarantee that attachments are virus free or 
>>>compatible with your systems and does not accept any liability in 
>>>respect of viruses or computer problems experienced.
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>></FONT>
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: commons-user-help@jakarta.apache.org
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: commons-user-help@jakarta.apache.org
>>>
>>>
>>>
>>>
>>>
>>><FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE>
>>>-------------------------------------------------------
>>>QAS Ltd.
>>>Registered in England: No 2582055
>>>Registered in Australia: No 082 851 474
>>>-------------------------------------------------------
>>></FONT> <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLACK>
>>>Disclaimer:  The information contained within this e-mail is
>>>   
>>>
>>>      
>>>
>>confidential and may be privileged. This email is intended solely for 
>>the named recipient only; if you are not authorised you must not 
>>disclose, copy, distribute, or retain this message or any part of it. 
>>If you have received this message in error please contact the sender at
>>    
>>
>
>  
>
>>once so that we may take the appropriate action and avoid troubling you
>>    
>>
>
>  
>
>>further.  Any views expressed in this message are those of the 
>>individual sender.  QAS Limited has the right lawfully to record, 
>>monitor and inspect messages between its employees and any third party.
>>Your messages shall be subject to such lawful supervision as QAS 
>>Limited deems to be necessary in order to protect its information, its 
>>interests and its reputation.
>> 
>>
>>    
>>
>>>Whilst all efforts are made to safeguard Inbound and Outbound emails,
>>>   
>>>
>>>      
>>>
>>QAS Limited cannot guarantee that attachments are virus free or 
>>compatible with your systems and does not accept any liability in 
>>respect of viruses or computer problems experienced.
>> 
>>
>>    
>>
>>></FONT>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: commons-user-help@jakarta.apache.org
>>>
>>>
>>>
>>>
>>>
>>>   
>>>
>>>      
>>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: commons-user-help@jakarta.apache.org
>>
>>
>>
>>
>>
>><FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE>
>>-------------------------------------------------------
>>QAS Ltd.
>>Registered in England: No 2582055
>>Registered in Australia: No 082 851 474
>>-------------------------------------------------------
>></FONT> <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLACK>
>>Disclaimer:  The information contained within this e-mail is
>>    
>>
>confidential and may be privileged. This email is intended solely for
>the named recipient only; if you are not authorised you must not
>disclose, copy, distribute, or retain this message or any part of it. If
>you have received this message in error please contact the sender at
>once so that we may take the appropriate action and avoid troubling you
>further.  Any views expressed in this message are those of the
>individual sender.  QAS Limited has the right lawfully to record,
>monitor and inspect messages between its employees and any third party.
>Your messages shall be subject to such lawful supervision as QAS Limited
>deems to be necessary in order to protect its information, its interests
>and its reputation.  
>  
>
>>Whilst all efforts are made to safeguard Inbound and Outbound emails,
>>    
>>
>QAS Limited cannot guarantee that attachments are virus free or
>compatible with your systems and does not accept any liability in
>respect of viruses or computer problems experienced.
>  
>
>></FONT>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: commons-user-help@jakarta.apache.org
>>
>>
>>
>> 
>>
>>    
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>
>
>
>
><FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE> 
>-------------------------------------------------------
>QAS Ltd.
>Registered in England: No 2582055
>Registered in Australia: No 082 851 474
>-------------------------------------------------------
></FONT> <FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLACK> 
>Disclaimer:  The information contained within this e-mail is confidential and may be privileged.
This email is intended solely for the named recipient only; if you are not authorised you
must not disclose, copy, distribute, or retain this message or any part of it. If you have
received this message in error please contact the sender at once so that we may take the appropriate
action and avoid troubling you further.  Any views expressed in this message are those of
the individual sender.  QAS Limited has the right lawfully to record, monitor and inspect
messages between its employees and any third party.  Your messages shall be subject to such
lawful supervision as QAS Limited deems to be necessary in order to protect its information,
its interests and its reputation.  
>
>Whilst all efforts are made to safeguard Inbound and Outbound emails, QAS Limited cannot
guarantee that attachments are virus free or compatible with your systems and does not accept
any liability in respect of viruses or computer problems experienced.
></FONT>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>
>
>  
>

Mime
View raw message