Antes de crear el post he buscado por el foro y no he encontrado ninguna coincidencia con mi problema. El caso es que hace un año o así hice un proyecto que era la gestión de una biblioteca vía web, y hace unos días lo encontré en una copia de seguridad y al lanzarlo me da error. El problema es que funcionaba perfectamente cuando lo guarde y ahora al ejecutarlo con el NetBeans no funciona ni siquiera el login. El error que me lanza es el típico “NullpointerExeption” cuando recupero el ResultSet de la sentencia en el JSP, pero lo he revisado todo y parece que todo esta bien, no se si el error esta en la base de datos o en el driver ODBC. Os pongo el error que sale en el GlassFish y el método conectar para ver si vosotros me podéis ayudar al encontrar el error. Gracias de antemano, un saludo.
Si os hace falta algun trozo de codigo más pedirmelo porfavor, merci de nuevo.
Error que me lanza:
Código:
Método conectar y comprovar_usuario (que distinge entre admin, trabajador o usuario): INFO: CONECTADO - JSP INFO: Sentencia comprovarUsuario: SELECT tipo_usuario FROM USUARIOS WHERE dni='admin' AND pasword='admin' ADVERTENCIA: StandardWrapperValve[jsp]: PWC1406: Servlet.service() for servlet jsp threw exception java.lang.NullPointerException at GestionBD.BaseDatos.comprovarUsuario(BaseDatos.java:453) at org.apache.jsp.validarEntrada_jsp._jspService(validarEntrada_jsp.java from :87) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:662)
Código:
//Conectar public void conectar(){ //CONEXION CORRECTA //String dsn = new String("jdbc:odbc:biblio"); String dsn = "jdbc:odbc:biblio"; // Carga del Driver del puente JDBC-ODBC try { Class. forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(ClassNotFoundException ex) { System.out.println("Error al cargar el driver"); System.out.println(ex. getMessage()); } // Establecimiento de la conexión con la base de datos try { con = DriverManager. getConnection(dsn, "", ""); System.out.println("CONECTADOOOOOOOOOO!!!"); } catch (SQLException sqlEx) { System.out.println("Se ha producido un error al" + " establecer la conexión con: " + dsn); System.out.println(sqlEx. getMessage()); } } //Comprovar Usuario public String comprovarUsuario(String colDni, String colPw, String colTipo, String tabla, String dni, String pw){ String tipo=""; try { String sentencia = "SELECT "+colTipo+" FROM "+tabla+ " WHERE "+ colDni + "='" + dni +"' AND " + colPw +"='"+pw+"'"; System.out.println("Sentencia comprovarUsuario: " + sentencia); //Aqui me marca el error, al recueprar el ResultSet ResultSet rs = stmt.executeQuery(sentencia); while(rs.next() == true){ tipo = rs.getString(colTipo); } } catch (SQLException e) { e.printStackTrace(); } return tipo; }