Dae galera.. eu achei um material sobre c3p0 e para teste criei a seguinte estrutura:
Classe que pega a conexão:
public class ConnectionPool {
public static List init() throws SQLException, NamingException {
InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/pooledDS");
List lista = new ArrayList();
if (ds != null) {
Connection conn = ds.getConnection();
String sql = "select * from Documento";
PreparedStatement psta = conn.prepareStatement(sql);
ResultSet result = psta.executeQuery();
while(result.next()) {
lista.add(result.getString("NumDocumento"));
}
result.close();
psta.close();
conn.close();
}
return lista;
}
}
<resource-ref>
<res-ref-name>jdbc/pooledDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
C:\Arquivos de programas\Apache Software Foundation\Apache Tomcat 6.0.14\conf\Catalina\localhost
Tem o arquivo referente a minha aplicação e ele foi definido assim:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/PoolConnection" docBase="C:\Documents and Settings\jvj000\Meus documentos\NetBeansProjects\PoolConnection\build\web">
<Resource name="jdbc/pooledDS" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource" />
<ResourceParams name="jdbc/pooledDS">
<parameter>
<name>factory</name>
<value>org.apache.naming.factory.BeanFactory</value>
</parameter>
<parameter>
<name>driverClass</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>jdbcUrl</name>
<value>jdbc:mysql://localhost:3306/controleDocumentos?autoReconnect=true</value>
</parameter>
<parameter>
<name>user</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>admin</value>
</parameter>
<parameter>
<name>minPoolSize</name>
<value>5</value>
</parameter>
<parameter>
<name>maxPoolSize</name>
<value>15</value>
</parameter>
<parameter>
<name>acquireIncrement</name>
<value>5</value>
</parameter>
</ResourceParams>
</Context>
mysql-connector-java-5.0.7-bin.jar
c3p0-0.9.1.jar
Criei um jsp que chama um servlet e executa o método da classe
ConnectionPool.init();
Quando clico no link, ele me gera o seguinte erro:
javax.naming.NamingException: Cannot create resource instance
at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:143)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:137)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at ConnectionPool.init(ConnectionPool.java:24)
at ServletPool.processRequest(ServletPool.java:33)
at ServletPool.doGet(ServletPool.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)