Retroceder   Foros del Web > Programación para sitios web > Java y JSP > JSP/Servlets

Respuesta
 
Herramientas Desplegado
Antiguo 13-dic-2004, 09:09   #1 (permalink)
saymon_set está en el buen camino
 
Fecha de Ingreso: septiembre-2003
Mensajes: 37
Tengo una clase que se conecta a un BD.. pero ..

Tengo una clase que se conecta a un BD.. pero .. cuando lo uso con un jsp, me da error
EL JSP ES

<%@ page language="java" import="java.sql.*,java.io.*,java.util.*,pkfactura .*" %>

<jsp:useBean id="book" class="pkfactura.books" />
<html>
<body>
<%
book.connect();
out.print("Hola nuevo mundo");
book.disconnect();

%>
</body>
</html>

LA CLASE ES ..

package pkfactura;
/*
* books.java
*
* Created on 11 de diciembre de 2004, 05:30 PM
*/


import java.sql.*;
import java.util.*;
import java.io.File;
import java.util.Date;
/**
*
* @author Administrador
*/
public class books {
String error;
Connection conn;
//String bd = "prueba"; //si te fijas aca va la base de datos que entraremos
//String login = "root"; //aca colocas el usuario que entrara
//String password = "root"; //como es obvio dice pass , colocas la pass que usaste en la cd cuando le diste el permiso al usuario y asignaste la pass
//String url = "jdbc:mysql://localhost/" + bd;

/** Creates a new instance of books */
public books() {
}
public void connect () throws ClassNotFoundException, SQLException,Exception{
try {
/*Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@say mon:1521:oracle","system","system"); */
Class.forName("com.mysql.jdbc.Driver").newInstance ();
//conn = DriverManager.getConnection(url,login,password);
conn = DriverManager.getConnection("jdbc:mysql://localhost/prueba","root","root");

// Class.forName("oracle.jdbc.driver.OracleDriver");
// conn = DriverManager.getConnection("jdbc:oracle:thin:@plu ton:1521:ORCL9I","system","manager");

}
catch(ClassNotFoundException e){
error="No se puede locxalizar el controlador.";
throw new ClassNotFoundException(error);
}
catch(SQLException e){
error="Imposible establecer la conexion on BD";
throw new SQLException(error);
}
catch(Exception e){
error="Hubo un error inseperado.";
throw new Exception(error);

}
}

public void disconnect () throws SQLException{
try{
if (conn != null){
conn.close();
}
}
catch(SQLException e){
error = "Impòsible cerrar la conexion";
throw new SQLException(error);
}
}
public ResultSet viewbooks()throws SQLException, Exception {
ResultSet rs=null;
try{
String sql="select * from book";
Statement stmt= conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException e){
error="No se puede ejecutar la consulta";
}
catch(Exception e){
error="Hubo un error";
throw new Exception(error);
}
return rs;
}

public void addbook(int id, String title, int price,int cid)throws SQLException,Exception{
if (conn != null ){
try{
PreparedStatement updatebook;
updatebook=conn.prepareStatement("insert into book value(?,?,?,?)");
updatebook.setInt(1,id);
updatebook.setString(2,title);
updatebook.setInt(3,price);
updatebook.setInt(4,cid);
updatebook.execute();


}catch(SQLException e){
error="Hubo un error SQL";
throw new SQLException(error);
}
}else{
error="se perdio lña conexion a la bd.";
throw new Exception(error);
}

}
public void removebook (String [] pkeys)throws SQLException, Exception{
if (conn != null ){
try{
PreparedStatement ps= conn.prepareStatement("delete * from book where id=?");
for(int i=0; i<pkeys.length;i++){
ps.setInt(1, Integer.parseInt(pkeys[i]));
ps.execute();
}
}catch(SQLException e){
error="Hubo un sql exceptiln";
throw new SQLException(error);
}catch(Exception e){
error="se produjo un error";
throw new Exception(error);
}
}else{
error="se ha perdido la conexion con la bd.";
throw new Exception(error);
}

}
}





Y EL ERROR ES ....


type Informe de Excepción

mensaje

descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

javax.servlet.ServletException: Imposible establecer la conexion on BD
org.apache.jasper.runtime.PageContextImpl.doHandle PageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.access$1 100(PageContextImpl.java:64)
org.apache.jasper.runtime.PageContextImpl$12.run(P ageContextImpl.java:745)
java.security.AccessController.doPrivileged(Native Method)
org.apache.jasper.runtime.PageContextImpl.handlePa geException(PageContextImpl.java:743)
org.apache.jsp.index_jsp._jspService(index_jsp.jav a:75)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet .java:802)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet .java:802)
sun.reflect.GeneratedMethodAccessor65.invoke(Unkno wn Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
org.apache.catalina.security.SecurityUtil$1.run(Se curityUtil.java:239)
java.security.AccessController.doPrivileged(Native Method)

ETC ...
saymon_set está desconectado   Responder Citando
Antiguo 13-dic-2004, 22:36   #2 (permalink)
hugo777 está en el buen camino
 
Avatar de hugo777
 
Fecha de Ingreso: noviembre-2002
Ubicación: Lima, Perú
Mensajes: 756
Enviar un mensaje por Yahoo  a hugo777
El mensaje de error es impreso desde el catch del SQLException.

Reviisando el codigo vemos que el SQLException puede ser lanzado por el objeto conexiòn que se usa en esa parte, por lo que es probale que el problema este con el usuario, password, o el nombre de la base de datos, o si el servidor esta disponible, etc, algo relacionado a la conexion.

Para ver mas detalle, imprime el mensaje, con un printStacjTrace para determinar el motivo y la linea exacta donde se produce.
__________________
Saludos,

H@C..
hugo777 está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 11:08.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93