Problemas no Tomcat (Pool de Conexoes)

o xml fica na pasta conf/Catalina/localhost/ e nao na work/Catalina/localhost
De uma olhada tb se vc esta usando diretórios com espaço no nome…
tipo <contex docBase="C:\Arquivo de Programas\ …
Já ouvi dizer que issoa tb pode ser fonte de problemas…

Cannot create JDBC driver of class '' for connect URL 'null'
java.sql.SQLException: No suitable driver
	at java.sql.DriverManager.getDriver(DriverManager.java:243)
	at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at org.apache.jsp.index_jsp._jspService(index_jsp.java:65)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:595)

veja o erro que da cara, fiz tudo certo!!

veja o arquivo postgresql.xml que ta no diretorio:

C:\jakarta-tomcat-5.0.28\conf\Catalina\localhost

<?xml version='1.0' encoding='utf-8'?>
	
  &lt;Context docBase="C:\\jakarta-tomcat-5.0.28\\webapps\\PROJETO" path="/PROJETO" reloadable="true" workDir="C:\\jakarta-tomcat-5.0.28\\work\\Catalina\\localhost\\PROJETO"&gt;

	 &lt;Resource auth="Container" description="Postgresql DB Connection" name="postgresql" type="javax.sql.DataSource"/&gt;
		&lt;ResourceParams name="postgresql"&gt;
			&lt;parameter&gt;
				&lt;name&gt;url&lt;/name&gt;
				&lt;value&gt;jdbc:postgresql://localhost:5432/banco&lt;/value&gt;
			&lt;/parameter&gt;

			&lt;parameter&gt;
				&lt;name&gt;password&lt;/name&gt;
				&lt;value&gt;password&lt;/value&gt;
			&lt;/parameter&gt;

			&lt;parameter&gt;
				&lt;name&gt;maxActive&lt;/name&gt;
				&lt;value&gt;50&lt;/value&gt;
			&lt;/parameter&gt;

			&lt;parameter&gt;
				&lt;name&gt;maxWait&lt;/name&gt;
				&lt;value&gt;5000&lt;/value&gt;
			&lt;/parameter&gt;

			&lt;parameter&gt;
				&lt;name&gt;driverClassName&lt;/name&gt;
				&lt;value&gt;org.postgresql.Driver&lt;/value&gt;
			&lt;/parameter&gt;

			&lt;parameter&gt;
				&lt;name&gt;username&lt;/name&gt;
				&lt;value&gt;username&lt;/value&gt;
			&lt;/parameter&gt;
		
			&lt;parameter&gt;
				&lt;name&gt;maxIdle&lt;/name&gt;
				&lt;value&gt;100&lt;/value&gt;
			&lt;/parameter&gt;
	&lt;/ResourceParams&gt;
&lt;/Context&gt;

esse e o arquivo,

nesse tomcat 5.0.28 para windows nao veio a pasta Catalina/localhost dentro do work do container

entao eu crie as pastas C:\jakarta-tomcat-5.0.28\work\Catalina\localhost\SubwayInternet correto?

Eu joguei o jar do postgresql e o do pool e do dbcp dentro do common/lib do tomcat, ate ae tudo bem.

olha como esta meu web.xml dentro da minha aplicacao


<?xml version="1.0" encoding="UTF-8"?>

&lt;web-app version="2.4"
         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" &gt;

       &lt;description&gt;Postgres Connection Pooling Test&lt;/description&gt;

       &lt;resource-ref&gt;
           &lt;description&gt;DB Connection&lt;/description&gt;
           &lt;res-ref-name&gt;postgresql&lt;/res-ref-name&gt;
           &lt;res-type&gt;javax.sql.DataSource&lt;/res-type&gt;
           &lt;res-auth&gt;Container&lt;/res-auth&gt;
       &lt;/resource-ref&gt;

&lt;/web-app&gt;

nada errado? nao é?

veja como esta meu codigo em java


Connection conn = null;
     try {
            Context initCtx = new InitialContext();
            DataSource ds = (DataSource) initCtx.lookup("java:comp/env/postgresql");

            try {
                conn = ds.getConnection();
                out.println("Conectado com sucesso");
            } catch (SQLException e1) {
                out.println(e1.getMessage());
            }
        } catch (NamingException e) {
            out.println(e.getMessage());
        }

e mesmo assim nao funciona porque?
sendo que no linux eu fiz a mesma coisa e funcionou!!!

alguem saka o porque?

abracos…

:frowning:

O nome do arquivo xml deve ser o nome da sua aplicação. Portanto se a sua aplicação se chama PROJETO o xml deve se chamar PROJETO.xml.
e este arquivo deve ficar na pasta C:\jakarta-tomcat-5.0.28\conf\Catalina\localhost

**** conf e nao work ***

Pessoal na minha aplicação ja existia esse arquivo .xml dentro de conf/catalina… ai eu a o abri e adicionei o codigo acima, equando eu executo o Tomcat, ele volta o arquivo como antes, ouseja apaga o que acabei de inserir… o q pode ser isso? eu configuro o path da minha aplicação dentro do server.xml isso tem alguma coisa a ver?

Estou usando o tomcat 5.5.9 e estou tendo o mesmo problema, ja utilizei isto em versões anteriores e funcionava, além deste problema estou tendo alguns com tagLib tmb…!! acho que realmente esta versão ta com algum problema.

Realmente parece que o tomcat não esta inicializando as propriedades passadas no server.xml pois coloquei isto aqui

	Context envContext  = (Context)initContext.lookup("java:/comp/env");
	BasicDataSource ds = (BasicDataSource)envContext.lookup("jdbc/MySQL");
	ds.setDriverClassName("com.mysql.jdbc.Driver");
	ds.setUrl("jdbc:mysql://localhost:3306/aspen?autoReconnect=true");
	ds.setUsername("root");
	ds.setPassword("");

e funcionou perfeitamente…!! claro que não é a maneira correta de usar mais pelo menos mostra que temos problemas.

Eu tenho problemas sérios com isso também…

Quando eu configuro o pool no server.xml, não funciona, da o mesmo erro que o cara aí em cima está reportando…agora, se eu recorto o código do server.xml e colo no “minhaaplicacao.xml”, funciona perfeitamente!

E isso sempre aconteceu, se eu quiser deixar um recurso visívil para todas as minhas aplicações, não da, pq o “server.xml” não faz o papel dele.

Para quem ainda tem esse problema, a solução está aqui:

https://bugs.launchpad.net/ubuntu/+source/tomcat5.5/+bug/74781