Problema para carregar o contexto no Pool de conexão com Tomcat

2 respostas
D

Tento carregar o contexto para o retorno do DataSurce, mas não vai cai no catch… e o erro é

“Name java:comp is not bound in this Context”

Trecho do código que chamo o contexto

DataSource ds = null; try{ ds = (DataSource)ctx.lookup("java:comp/env/jdbc/bd"); } catch (NamingException ex) { System.out.println(ex.getMessage()); return ex.getMessage(); }

Server.xml

<Context path="/Net" docBase="Net" debug="5" reloadable="true" crossContext="true">
  <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_Net_log." suffix=".txt" timestamp="true"/>

  <Resource name="jdbc/bd" auth="Container" type="javax.sql.DataSource"/>

  <ResourceParams name="jdbc/bd">
    <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>root</value>
    </parameter>
    <parameter>
     <name>password</name>
     <value>123</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/Net</value>
    </parameter>
  </ResourceParams>
</Context>

Web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

  <!DOCTYPE web-app PUBLIC
	"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
	"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
  <display-name></display-name>
  
  <!-- Standard Ação Servlet Configuração-->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>br.com.h2m.framework.controller.ServletController</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
 </servlet>

  <!-- Standard Ação Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

  <!-- Bem Vindo ao STR -->
  <welcome-file-list>
	<welcome-file>/NetWeb/jsp/login.jsp</welcome-file>
  </welcome-file-list>

  <!-- Mapeamento de TagLig -->
  <taglib>
    <taglib-uri>/WEB-INF/tld/struts-bean</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/WEB-INF/tld/struts-html</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/WEB-INF/tld/struts-logic</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
  </taglib>
  
 <resource-ref>  
    <description>DB Connection</description>  
    <res-ref-name>jdbc/bd</res-ref-name>  
    <res-type>javax.sql.DataSource</res-type>  
    <res-auth>Container</res-auth>  
 </resource-ref> 
</web-app>

Muito obrigado

2 Respostas

furutani

Olá

Dependendo da versão do tomcat que você usa a forma de configurar o server.xml mudou.
Se for a 6.0 já não é mais desse jeito que vc postou.

D

Estou usando o “tomcat-5.0.28”

Alguem sabe como setar direto no código mesmo os parametros de número de conexões máxima, url e etc…?

Muito Obrigado

Falow

Criado 10 de abril de 2008
Ultima resposta 11 de abr. de 2008
Respostas 2
Participantes 2