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

Ejemplo conexión Oracle

Estas en el tema de Ejemplo conexión Oracle en el foro de Java en Foros del Web. Llevo varios días intentando conectar una página JSP con una base de datos Oracle, he peinado google, bajado 1000 tutoriales y aun así me falla ...
  #1 (permalink)  
Antiguo 21/04/2009, 00:49
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Ejemplo conexión Oracle

Llevo varios días intentando conectar una página JSP con una base de datos Oracle, he peinado google, bajado 1000 tutoriales y aun así me falla la cadena de conexión, y la he probado de varias maneras pero me dice que tiene valor nulo siempre.

Si alguien es tan amable de ponerme algún ejemplo de JSP con Oracle que funcione se lo agradecería mucho.
  #2 (permalink)  
Antiguo 21/04/2009, 02:03
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Ejemplo conexión Oracle

Wenas

Si te has bajado 1000 tutoriales y 'peinado' a google (con raya). De esos 1000 tutoriales, alguno funcionara, estan basados en lo mismo.

Pon tu codigo para poder echarte una mano. Doy por supuesto que tienes todos los jar en su sitio y la BBDD arrancada y existe el usuario con el que te intentas conectar.

Saludos.
  #3 (permalink)  
Antiguo 21/04/2009, 02:18
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

Clase para la Consulta

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.LinkedList;
import java.lang.*;
import oracle.jdbc.driver.*;

public class ConsultaCLIPSS {

public static LinkedList<DatosCLIPSS> getDatosCLIPSS()
{
LinkedList<DatosCLIPSS> listaUsuarios=new LinkedList<DatosCLIPSS>();
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conexion = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.10.200:1521:BASEDAT OS", "USUARIO", "PASSWORD");
Statement st = conexion.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM TABLA" );
while (rs.next())
{
DatosCLIPSS consulta = new DatosCLIPSS();
consulta.setCli(rs.getInt("CLI"));
consulta.setPss(rs.getString("PSS"));
consulta.setPssPri(rs.getString("PSSPRI"));
listaUsuarios.add(consulta);
}
rs.close();
st.close();
conexion.close();
}
catch (Exception e)
{
e.printStackTrace();
}
return listaUsuarios;
}
}
----------------------------------------------------------------------------------------------

JSP para Comprobar Datos

<jsp:useBean id="Datos" class="Paquete.DatosCLIPSS" scope="request" />
<jsp:useBean id="Consulta" class="Paquete.ConsultaCLIPSS" scope="request" />

<%
String numero = request.getParameter("Numero");
String contra = request.getParameter("Contraseña");

numero = numero.toUpperCase();
contra = contra.toUpperCase();

LinkedList<DatosCLIPSS> lista = ConsultaCLIPSS.getDatosCLIPSS();
for (int i=0;i<lista.size();i++)
{
if (numero.equals(lista.get(i).getCli()) && contra.equals(lista.get(i).getPss())){
%>
<jsp:forward page="Pedidos.jsp" />
<%
}
else{
%>
<jsp:forward page="Menu.jsp" />
<%
}
}
%>

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

DatosCLIPSS es otra clase donde están los getters y los setters de los datos de la tabla para que estén en la página JSP.

Tengo tanto lío que ya no se por donde voy XD
  #4 (permalink)  
Antiguo 21/04/2009, 03:56
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Ejemplo conexión Oracle

Que es lo que tiene valor nulo?? Que error te da?? Existe ese servidor?? Te has conectado a esa base de datos con ese usuario y contraseña con el TOAD y entra?? la tabla tiene datos??
  #5 (permalink)  
Antiguo 21/04/2009, 04:12
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

Primer Error: (No reconoce el driver)

Linea: Class.forName("oracle.jdbc.driver.OracleDriver");

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

Este es lo más raro que me pasa, tengo ejemplos a mi lado y funcionan, pero en este que es el importante me falla. Y el jar está bien metido, es el jar que necesito y todo. Ya te digo que en otros ejemplos me funciona perfectamente.

Segundo Error: (Cadena de conexión nula)

Linea: Connection conexion = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.10.200:1521:BASEDAT OS", "USUARIO", "PASSWORD");

Error: En principio nada porque pasa por el Try y captura el error.

Existe el usuario y la contraseña, las tablas con datos, estoy trabajando tambien con ello, es en lo que más etmía en fallar porque de todo lo que me baje para aprender tiene muchas diferencias (con los caracteres "/" y ":" sobre todo).

Supuestamente todo está bien, pero no veo los errores.
  #6 (permalink)  
Antiguo 21/04/2009, 04:19
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Ejemplo conexión Oracle

Si no te reconoce el driver chungo.

Prueba a abrir tu classes12.jar?? esta corrupto??
  #7 (permalink)  
Antiguo 21/04/2009, 04:24
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Ejemplo conexión Oracle

Que version de base de datos es?? El driver no estara para una version anterior??


http://www.oracle.com/technology/sof...dbc/index.html
  #8 (permalink)  
Antiguo 21/04/2009, 04:29
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

Está bien mirado, tengo el classes12 que se corresponde a la versión que tengo. E hice lo de meter el jar en las Libraries.

Por eso creo que el error está en el código.
  #9 (permalink)  
Antiguo 21/04/2009, 04:58
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Ejemplo conexión Oracle

En los codigos que te funciona, te conectas igual?? Habras hecho un copy -paste del metodo de conexion.
  #10 (permalink)  
Antiguo 21/04/2009, 05:07
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

Si, está hecho como funcionaba en otras pero hecho para esta, lo que falla en todas es la cadena de conexión, y acabamos de ver un compañero mio y yo que es la correcta.

Por eso pedia un ejemplo, para ver como lo hace de alguien que sabe porque es la 1ª vez que conecto JSP con Oracle y no soy capaz a sacarlo. En fin, que necesito que me enseñen XD
  #11 (permalink)  
Antiguo 21/04/2009, 05:12
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Ejemplo conexión Oracle

Como que la cadena de conexion??

En los otros ejemplos te encuentra el driver?? Porque en este me parece que no.
  #12 (permalink)  
Antiguo 21/04/2009, 05:15
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

En este no me encuentra el driver.

La cadena conexión es:

Connection conexion = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.10.200:1521:BASEDAT OS", "USUARIO", "PASSWORD");

Que en todo lo que encontré y me puse a probar me dice que es null
  #13 (permalink)  
Antiguo 21/04/2009, 05:57
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

Me vuelvo loco, lo estoy haciendo por lo más básico posible:

http: //informatica.uv.es/it3guia/ARS/transparencias_2c/Tema13_Servlet-JSP.pdf

Página 46 de 53

Sigo paso a paso y no funciona.
  #14 (permalink)  
Antiguo 21/04/2009, 06:11
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: Ejemplo conexión Oracle

Seguro que tienes el driver correcto?? te lo bajaste de la pagina de oracle??

No busques en tu codigo, al menos ha de encontrar el driver, sino, o una de dos o no has importado correctamente el jar de turno o estas cargando '2 driver' de distintas versiones, y el malo va en la linea de comandos antes que el bueno.
  #15 (permalink)  
Antiguo 21/04/2009, 06:20
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

Si, es el driver que me toca, bajado desde la pagina de oracle done me tuve que registrar.

El driver lo metí el Libraries pinchando con el botón derecho en el proyecto->Build Path->Configure Build Path->Add External Jars y lo añadí

Y no me descargué ningún otro driver. Atónito verdad? XD
  #16 (permalink)  
Antiguo 21/04/2009, 12:09
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Ejemplo conexión Oracle

Si te dice que no encuentra el driver, olvidate del mensaje de error de la cadena de conexión. Hasta que no soluciones lo primero te dara errores con el segundo metodo aunque esté bien.

Y aunque suene raro, si te dice que el error es ClassNotFound del driver, el .jar no esta bien puesto en el classpath o el fichero está corrupto, no hay más.

¿Te da error ejecutando el programa dentro del Eclipse, verdad?
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #17 (permalink)  
Antiguo 21/04/2009, 23:51
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

Cita:
Iniciado por GreenEyed Ver Mensaje
Y aunque suene raro, si te dice que el error es ClassNotFound del driver, el .jar no esta bien puesto en el classpath o el fichero está corrupto, no hay más.
Bien, yo lo que hago es:

Botón derecho en el proyecto -> Build Path -> Configure Build Path -> Libraries -> Add External JARs

Pongo la ruta de classes12.jar y listo.

Ahora bien, si le dio a expandir en su "+" sale Source Attachment, Javadoc Location, Native Library Location en "None" y Access Rules en "No restrictions".

Más no se que hacer con el driver, y mirando los otros veo que nunca me funcionó, solo que pasaba a otro lado por el "catch (ClassNotFoundException e)"

Última edición por SileBird; 21/04/2009 a las 23:58
  #18 (permalink)  
Antiguo 22/04/2009, 04:21
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Ejemplo conexión Oracle

¿Has probado a descomprimir el .jar o abrirlo con Winzip/Winrar?

Mira el .jar en el package browser, a ver si ahi te salen las clases que tiene dentro.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #19 (permalink)  
Antiguo 22/04/2009, 04:24
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

Si, eso ya lo habia mirado.

Ahora setoy mirando porque debe ser la configuración del Tomcat 6.0.

El driver classes12.jar al meterlo en la carpeta \Tomcat 6.0\lib ya está solucionado, o eso parece.

Ahora me queda la cadena de conexión que no me lee la base de datos.

Bueno, voy poner como solucioné la parte del driver y por donde me estoy metiendo:

http : // www . microdeveloper . com/html/JNDI_Orcl_Tomcatp3 . html
  #20 (permalink)  
Antiguo 23/04/2009, 02:48
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

Bien, he modificado los documentos *xml del Tomcat y solo me queda un error:

javax.naming.NameNotFoundException: El nombre jdbc no este asociado a este contexto

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

Lo que supongo es que no me encuentra la base de datos. Lo que he añadido fue esto (Cambiando por mis datos):

En Server.xml

<Resource name="jdbc/<alias>"
auth="Container"
type="oracle.jdbc.pool.OracleDataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="oracle.jdbc.pool.OracleDataSourceFactory"
url="jdbc:oracle:thin:@<host>:<port>:<sid>"
[user=<user>]
[password=<password>]
maxActive="20"
maxIdle="10"
maxWait="-1" />

En Context.xml

<ResourceLink global="jdbc/<alias>" name="jdbc/<alias>" type="oracle.jdbc.pool.OracleDataSource"/>

En Web.xml

<resource-ref>
<description>Oracle Development Datasource</description>
<res-ref-name>jdbc/db1</res-ref-name>
<res-type>oracle.jdbc.pool.OracleDataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

<resource-ref>
<description>Oracle Development Datasource</description>
<res-ref-name>jdbc/db2</res-ref-name>
<res-type>oracle.jdbc.pool.OracleDataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

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

Si quereis ver todas las líneas del error son todas estas:

javax.naming.NameNotFoundException: El nombre jdbc no este asociado a este contexto
at org.apache.naming.NamingContext.lookup(NamingConte xt.java:770)
at org.apache.naming.NamingContext.lookup(NamingConte xt.java:153)
at com.microdeveloper.db.jndi.ConnectionPool.init(Con nectionPool.java:24)
at org.apache.jsp.Default_jsp._jspService(Default_jsp .java:59)
at org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
at org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run( JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
  #21 (permalink)  
Antiguo 23/04/2009, 09:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Ejemplo conexión Oracle

Cita:
<Resource name="jdbc/<alias>"
¿Un nombre con '/' y '<'?
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #22 (permalink)  
Antiguo 24/04/2009, 00:00
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

jdbc es "como una carpeta" que me mandan porner en todas las cosas que leí.

/ debe ser como lo de acceder en la carpeta.

y <alias> es donde pongo el nombre de mi base de datos.

Pero voy probar sin meter lo de "jdbc/" haber que sale y luego edito si funciona o no.
----------------------------------------------------------------------------------------------

No funcionó XD

Última edición por SileBird; 24/04/2009 a las 01:22
  #23 (permalink)  
Antiguo 24/04/2009, 05:39
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Ejemplo conexión Oracle

Todo solucionado !!!

El error de la cadena fue porque no se habia instalado la propiedad para poder utilizar el "thin" por lo tanto no me leía mal el nombre de la base de datos, me leía mal toda la cadena de conexión.

En fin, pongo la conclusión para quienes lean esto sepan mi solución:

-Instalar todas las propiedades de Java que tiene el Oracle
-Meter el driver de Oracle (classes12) en la carpeta "lib" del Tomcat

Muchas gracias a elAntonie y a GreenEyed por todo este tiempo.
  #24 (permalink)  
Antiguo 24/04/2009, 08:19
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Ejemplo conexión Oracle

Me alegro que se haya solucionado.
¿La primera parte (Instalar todas las propiedades de Java que tiene el Oracle) que significa?

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
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 10:38.