Pool de conexões

11 respostas
N

Oi colegas..
Sou iniciante em java e em meus estudos mais recentes tenho tentado configurar um pool de conexões para minha aplicação..

Meus teste naum vem funcionado..

Para começar coloquei o seguinte codigo no meu server.xml entre a tag host
<Context path="/dbcp" docBase="dbcp" debug="5"
reloadable="true" crossContext="true">

<Resource name="jdbc/TestDB" 
auth="Container"  type="javax.sql.DataSource" 
maxActive="100" maxIdle="30" maxWait="10000" 
username="root" password="iracilda" 
driverClassName="com.mysql.jdbc.Driver" 
url="jdbc:mysql://localhost:3306/TestDB?autoReconnect=true"/>

</Context>
Em seguida criei um web.xml que coloquei dentro do web-inf da aplicação
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <description>MySQL Test App</description>
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>
Pelo q li essa configuração basta para q o pool funcione e entaum em seguida criei um jsp para testar..
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/TestDB">
select * from testdata;
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>
hjhsjfjhf
<c:out value="daugg"/>
<h2>Results</h2>
  
<c:forEach var="row" items="${rs.rows}">
    Foo ${row.foo}<br/>
    Bar ${row.bar}<br/>
</c:forEach>

  </body>

  </body>
</html>

Mas quando eu chamo o jsp pelo browser aparece o seguinte erro:

javax.servlet.ServletException: Unable to get connection, DataSource invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'"

Será q alguem tem ideia do q eu estou fazendo de errado??
Ajuda pleaseeeeee
=D

11 Respostas

javaBeats

Teoricamente, tudo certo.

Classpath?
Verifique se os arquivos .jar que são necessários para o pool funcionar estejam incluídos na pasta “common/lib” do tomcat (caso seja este o servidor que está usando).

N

Olha só…
No meu classpath eu coloquei o mysql-connector-java-3.1.12-bin…

Deveria ter colocado mais alguma coisa??

E sim, estou usando o Tomcat

M

Esse era o meu problema até ontem (já resolvido). Mas acho que você não respondeu a pergunta do javaBeats. Você colocou os arquivos JAR no diretório common\lib do Tomcat ?

[ ]'s

N

Bom o arquivo q eu coloquei no common/ lib foi o connector do mysql(mysql-connector-java-3.1.12-bin)…

Preciso colocar mais alguma coisa??

javaBeats

Sim, três arquivos .jar de projetos do connection pool do tomcat/apache. Não me lembro com certeza, mas acho que não vêm com a distribuição padrão do tomcat.

Dê uma olhada aqui: http://tomcat.apache.org/tomcat-5.0-doc/jndi-datasource-examples-howto.html

Tem todos os passos para configurar um DataSource usando JNDI no tomcat. É exatamente o que você precisa.

Rodrigo

N

Valeuuuuu Rodrigo… \o/

Vou dar uma olhada e ver se consigo resolver meu problema tah…

=D

M

Os arquivos são :
commons-pool-x.x.jar
commons-dbcp-x.x.x.jar
commons-collections-x.x.jar

N

Acabei de baixa-los e instala-los aqui no meu common/lib…

Mas adivinha…

Nada mesmo erro chato… =/

Bom vou continuar brigando aqui…

Se alguem tiver alguma ideia…

Eu ficarei muitoooo agradecida ^^

M

Quais são os arquivos jar no seu common\lib ?

N

Bom vou colocar os que acho relevante…

*commons-dbcp-1.2.1
*commons-collections-3.2
*commons-pool-1.3
*mysql-connector-java-5.0.3-bin

Bom q fazem a conexão creio que esses são os importantes…

javaBeats

Hmmm…

E se você fizer a conexão sem usar a tag JSTL? Via DataSource mesmo, funciona?

Rodrigo

Criado 28 de julho de 2006
Ultima resposta 31 de jul. de 2006
Respostas 11
Participantes 3