![]() |
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 ... |
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. |
| La zona horaria es GMT -6. Ahora son las 03:30. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.