Foros del Web » Programación para mayores de 30 ;) » Java »

Problema Con Pool De Tomcat

Estas en el tema de Problema Con Pool De Tomcat en el foro de Java en Foros del Web. Hola! vereis tengo un problema con el pool de TomCat y estoy bastante perdida. Os explicio detalladamente lo que he hecho y luego el error ...
  #1 (permalink)  
Antiguo 03/10/2005, 12:22
 
Fecha de Ingreso: mayo-2005
Mensajes: 294
Antigüedad: 19 años
Puntos: 0
Problema Con Pool De Tomcat

Hola! vereis tengo un problema con el pool de TomCat y estoy bastante perdida. Os explicio detalladamente lo que he hecho y luego el error que me da a ver si podeis ayudarme.

1.-ESTABLEZCO EL ORIGEN DE DATOS JNDI.Para ello voy al directorio del tomcat y alli a conf/server.xml y lo que pongo es
<DefaultContext>
<Resource name="jdbc/Servauto" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/Servauto">
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@localhost:1521:SERVAUTO </value>
</parameter>
<parameter>
<name>username</name>
<value>system</value>
</parameter>
<parameter>
<name>password</name>
<value>sara_system</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>50</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>100</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>15</value>
</parameter>
</ResourceParams>
</DefaultContext>

2.-VOY A MI APLICACION WEB(La aplicacion la he desarrollado con el JBuilder) voy a mi aplicacion y dentro de ella al WEB-INF y modifico el web.xml añado lo siguiente(lo añado dentro de la etiqueta webapps):
<resource-ref>
<res-ref-name>jdbc/Servauto</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.- ESCRIBO UN CODIGO QUE CONSULTE LA BASE DE DATOS PARA PROBAR QUE FUNCIONA.El codigo concretamente es:

<html>
<head>
<%@ page errorPage="errorprog.jsp"
import="java.sql.*,
java.io.*,
javax.naming.InitialContext,
javax.naming.Context" %>
</head>
<body>
<h1>JDBC JNDI Resource Test</h1>
<%
InitialContext initCtx= new InitialContext();
DataSource ds=(DataSource)initCtx.lookup("java:comp/env/jdbc/Servauto");
Connection conn=ds.getConnection();
Statement stmt=conn.createStatement();
ResultSet rset=stmt.executeQuery("select * from ejercicio;");
%>
<table width='600' border="1">
<tr>
<th align="left">Identificador</th>
<th align="left">Enunciado</th>
<th align="left">Nivel</th>
<th align="left">Fecha</th>
<th align="left">idEsquema</th>
</tr>
<%
while(rset.next()){
%>
<tr><td><%=rset.getString(1)%></td>
<td><%=rset.getString(2)%></td>
<td><%=rset.getString(3)%></td>
<td><%=rset.getDate(4)%></td>
<td><%=rset.getString(5)%></td>
</tr>
<% }
rset.close();
stmt.close();
conn.close();
initCtx.close();
%>
</table>
</body>
</html>


4.-VALE AHORA SUPUESTAMENTE YA LO PUEDO PROBAR Y DEMÁS, LO QUE HAGO ES COMPILAR MI PROYECTO DEL JBUILDER DONDE TENGO LA APLICAION PARA QUE ME GENERE EL WAR QUE LUEGO PONGO EN EL DIRECTORIO DEL TOMCAT
Bien pues aqui es donde me da el error, al compilar. Me da en la linea que he marcado en negrita,(la del lookup) me dice:
"JDBCTest.jsp": Error #: 300 : class DataSource not found in class JDBCTest_0002ejsp_jsp at line 13

Vale yo esa linea la he puesto porque en un libro he leido que todos los recursos JNDI son relativos a java:comp/env.

¿Podeis ayudarme? Es muy importante. NO entiendo el error y el problema es que yo con el TomCat no me defiendo apenas. Muchas gracias!
  #2 (permalink)  
Antiguo 04/10/2005, 03:49
 
Fecha de Ingreso: septiembre-2005
Ubicación: Madrid, España
Mensajes: 18
Antigüedad: 18 años, 7 meses
Puntos: 0
Prueba con lo siguiente

Intenta recuperar en primer lugar el contexto y posteriormente hacer un lookup de tu fuente de datos:

Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) envCtx.lookup("jdbc/Servauto");

Deberia funcionar

Respuesta proporcionada por http://www.consultoriajava.com
  #3 (permalink)  
Antiguo 04/10/2005, 14:08
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Hola,
En estos casos, el primer paso es leer detenidamente el mensaje de error. No, no es coña.
El mensaje de error dice:..."class DataSource not found" asi que el primer problema es que no encuentra las clase javax.sql.DataSource, y se soluciona haciendo un import de la clase, en este caso añadiendolo a los que ya tienes.

Si el problema fuera que no encuentra el DataSource, la excepcion sería posiblemente una "javax.naming.NameNotFoundException".

Un saludo
  #4 (permalink)  
Antiguo 04/10/2005, 14:20
Avatar de hugo777  
Fecha de Ingreso: enero-2002
Ubicación: Lima, Perú
Mensajes: 757
Antigüedad: 22 años, 3 meses
Puntos: 1
Asi es, trata también de poner la verisón de TOMCAT que estas utilizando, porque entre ellas existen variaciones...
__________________
Saludos,

H@C..
  #5 (permalink)  
Antiguo 04/10/2005, 14:22
 
Fecha de Ingreso: mayo-2005
Mensajes: 294
Antigüedad: 19 años
Puntos: 0
oye muchisimas gracias a todos de verdad. Bueno la version es la 5.0.30
  #6 (permalink)  
Antiguo 04/10/2005, 14:33
 
Fecha de Ingreso: abril-2004
Ubicación: Juli - Puno - Perú
Mensajes: 51
Antigüedad: 20 años
Puntos: 0
Hola, creo que en tu archivo jsp te olvidaste de declarar la librería.

import javax.sql.DataSource;

es por eso que te sale el error, además la versión que indicas está correcto la forma de declarar JNDI, en la versión 5.5.x la forma de declarar JNDI es mediante atributos dentro del tag Resource.
Saludos
__________________
Juli - La Pequeña Roma Aymara
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:45.