SoloCodigo

Programación General => Java => JSP/Servlets => Mensaje iniciado por: guanuma en Sábado 5 de Junio de 2004, 02:53

Título: Vuelvo De Nuevo A Molestar - Help!!!!!!!!!!!!
Publicado por: guanuma en Sábado 5 de Junio de 2004, 02:53
hola a todos. :hola:

hace poco que ya habia pedido ayuda para este error, pero la verdad es que todavia no lo he resuelto y e intentado todo.

Estoy haciendo un ejemplo simple de un Jdbc Servlet
pero simpre recibo los mismos errores. El codigo es el siguiente:

import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HolaServlet extends HttpServlet {

private Connection con;
private PrintWriter out;

public void init(ServletConfig conf)
throws ServletException {

super.init(conf);

}


public void service(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {

res.setContentType("text/html");

try{



out = res.getWriter();

out.println("<html>");
out.println("<head>");
out.println("<title> Sample JDBC Servlet Demo" +
"</title>");
out.println("</head>");
out.println("<body>");


Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");


con = DriverManager.getConnection("jdbc:odbc:MS Access Database","fernando","lolo");


Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROM empleados");

out.println("<UL>");

while(rs.next()) {

out.println("<LI>" + rs.getString("nombre"));
}

out.println("</UL>");
rs.close();

stmt.close();
con.close();
}


catch(IOException e) {

System.err.println("An IOException was thrown.");

} catch(ClassNotFoundException e){
System.err.println("un error de classnotfound" + e.getMessage());

}

catch(SQLException e) {
out.println();
out.println("An SQL Exception was thrown."+ e.getMessage());

cuando trato de hacer la coneccion en el metodo INIT me da un NullPointerException, pero si en vez de hacerlo en el Init, lo hago en el Service o en el DoPost(esta vez estoy sobreescribiendo en service), el error que me lanza es un SQL Exception, y aparentemente es en la sentencia " con = DriverManager.getConnection("jdbc:odbc:MS Access Database","fernando","lolo"); " , me dice que no ha encontrado el nombre de origen de dato y que no se ha especificado un controlador predeterminado.

no se si seria mucho pedir pero, si alguien puede hacer y mandarme un ejemplo similar, tal y como el mio (pero que funcione) con una pequeña base hecha en access para yo comparar linea por linea, por que ya e intentado todo , y se me agotaron las ideas, tengo casi un mes con este error y estoy varado en el aprendizaje de java.

muchas gracias.


}
out.println("</body>");

out.println("</html>");
out.close();
}

}
Título: Re: Vuelvo De Nuevo A Molestar - Help!!!!!!!!!!!!
Publicado por: nicokiki en Sábado 5 de Junio de 2004, 14:34
Hola de nuevo!!!!!!!!

Lo primero q pregunto por desconocer el tema es si Access soporta JDBC o hay q instalar alguna aplicacion especial q lo haga (en el caso de Interbase, no soporta JDBC y es por eso q hay q instalar Interclient).
Lo segundo es verificar q estas lineas llaman a la conexion correctamente:

Código: Text
  1.  
  2. Class.forName(&#34;sun.jdbc.odbc.JdbcOdbcDriver&#34;);
  3.  
  4. con = DriverManager.getConnection(&#34;jdbc:odbc:MS Access Database&#34;,&#34;fernando&#34;,&#34;lolo&#34;);
  5.  
  6.  
Para verificar esto usa google o java.sun.com

Despues, si vos llamas a conectarse a la BD en el doPost (o doGet o doPut o doDelete), en caso q quieras, cada vez q se llama al servlet, volveras a conectarte a la BD salvo q tengas una clase conexion con un constructor privado.

Por ultimo, la consulta q tiras no tiene errores, asi q fijate en lo q te dije antes

Salu2!!!!
Título: Re: Vuelvo De Nuevo A Molestar - Help!!!!!!!!!!!!
Publicado por: guanuma en Sábado 5 de Junio de 2004, 15:03
:hola:

bueno, el Access creo que si soporta al JDBC ya que he hecho  pequeños ejemplos con el JDBC-ODBC en el que me conecto a la misma base que estoy tratando de conectarme ahora  y visualizo la misma consulta que estoy intentando ahora pero en una pantalla y funciona sin ningun problema.


las lineas  que llaman a coneccion las he revisado  muchas veces, pero no les encuetro ningun error, son las mismas lineas que uso para conectarme en los ejemplos de los cuales anteriormente te habia comentado.


Se que si  trato de conectarme en el doPost, doGet,etc, creara una coneccion cada vez que llame al servlet, el problema es que si pongo el codigo en el Init me da un NullPoniterException que no logro entender.