error javax.naming.NameNotFoundExcpetion al configurar un connection pool en tomcat

Sera
06 de Abril del 2004
Hola a todo@s!!

Llevo varios días intentando configurar un pool de conexiones para conectarme con una BD Oracle
a través de un servidor Tomcat 4.1 (en Windows XP). He mirado varios foros y he seguido todas las
instrucciones, pero no consigo configurarlo bien. El error que siempre me aparece es:

"Excepción del tipo javax.naming.NameNotFoundException: el nombre java: no este asociado a este contexto en el método getConnection"

Por favor, ya no sé que más hacer. Me estoy volviendo loco!!!

Esto es lo que añado al fichero server.xml file, justo después de la etiqueta de cierre "</GlobalNamingResources>":

<!-- Sera: ini -->
<Context path="/informes_web" docBase="informes_web" debug="0" reloadable="true" crossContext="true">
<Resource name="jdbc/myoracle" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/myoracle">

<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>

<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>

<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@192.168.101.177:1521:DGE</value>
</parameter>

<parameter>
<name>username</name>
<value>informes</value>
</parameter>

<parameter>
<name>password</name>
<value>informes</value>
</parameter>

<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>

<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>

<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>

</ResourceParams>
</Context>

<!-- Sera: fin -->

------------------------------------------------

Y en el web.xml pongo:

<resource-ref>
<description>
Referencia del recurso a la fábrica java.sql.Connection definida en server.xml
</description>

<res-ref-name>jdbc/myoracle</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>
</resource-ref>

Tengo todas las librerías copiadas en la carpeta common/lib folder, incluida la librería classes12.jar
con los drivers de oracle

Y el código java que utilizo para crear una conexión es:

private Connection getConnection()
{

Connection conn = null;

try
{
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
// Context envContext = (Context)initContext.lookup("");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
conn = ds.getConnection();
}
catch (Exception e)
{
this.error("getConnection", e);
}

return conn;
}

¿Puede alguien ayudarme?

Gracias por adelantado!

manelix
06 de Abril del 2004
creo q es
Context envContext = (Context)initContext.lookup("java:comp/env");
y no
Context envContext = (Context)initContext.lookup("java:/comp/env");

navaja
06 de Abril del 2004
Como dice manelix, puede ser eso o que estes poniendo el tu DataSource (<context>) en la parte equivocada de tu server.xml ya que si no se encuentra bien nunca te va a fucnionar el Pool (aunque este bien tu web.xml) revisa bien la documentacion de tomcat y ahi te dice donde colocarlo...

http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html

Suerte!!!