Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/07/2006, 03:04
MikiBroki
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años, 9 meses
Puntos: 8
Hola y gracias... me temo que va a ser que tengo alguna falta de base de algo pues no meto a camino el tema...

1) Copia el classes2.jar en el directorio $TOMCAT/common/lib y asegurate que tenga permisos de lectura. ---> OK . Puntualizar que Oracle 10i trae un "classes12.zip" y un "classes12.jar", he copiado el jar y también he probado con el otro.

2) Configura el DataSource dentro del contexto de tu aplicación web, o en el contexto general (GlobalNamingResources)

server.xml :

Código:
<Resource name="jdbc/mioracle" scope="Shareable" type="javax.sql.DataSource"/>
  <GlobalNamingResources>
    <Environment name="simpleValue" override="true" type="java.lang.Integer" value="30"/>
    <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" scope="Shareable" type="org.apache.catalina.UserDatabase"/>
    <Resource name="jdbc/mioracle" scope="Shareable" type="javax.sql.DataSource"/>
    <ResourceParams name="UserDatabase">
      <parameter>
        <name>factory</name>
        <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
      </parameter>
      <parameter>
        <name>pathname</name>
        <value>conf/tomcat-users.xml</value>
      </parameter>
    </ResourceParams>
    <ResourceParams name="jdbc/mioracle">
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>4</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value>mhp</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:oracle:thin:[email protected]:1521:exped</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>oracle.jdbc.OracleDriver</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>2</value>
      </parameter>
      <parameter>
        <name>username</name>
        <value>SYSTEM</value>
      </parameter>
    </ResourceParams>
  </GlobalNamingResources>
... Dentro del parámetro 'url' he puesto 'exped' que es el nombre la bd y también el del listener... en la documentación pone "(Note: with the thin driver this sid is not the same as the tnsname)"...

Por otro lado tengo la duda de si será algo relacionado con "UserDatabase", ya que accediendo al "Server Administration" aparece (no sé si hay algo que editar ahí):

Código:
Name:     UserDatabase
Location: conf/tomcat-users.xml
Factory:  org.apache.catalina.users.MemoryUserDatabaseFactory
3) Enlaza el DataSource a tu aplicación web, a través de tu web.xml (depende del paso 2, si está en el contexto de tu apliación web)

web.xml :

Código:
<resource-ref>
 <description>Ejemlo Oracle DB</description>
 <res-ref-name>jdbc/mioracle</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
</resource-ref>
4) Programa la aplicación que recuperará el Datasource del JNDI y lo utilizará:

Código:
Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/mioracle");
// Connection conn = ds.getConnection();
Y sigue saliendo en la línea del DataSource:

Código:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null', cause:
java.sql.SQLException: No suitable driver
Gracias de nuevo y disculpen