Problemas para conectar SAP_DB con JDBC
hola que tal, tengo un problema para conectarme a la base de datos desde un servlet, al cual llamo desde un JSP, y le envio los datos que debe validadar y realizar el correspondiente INSERT en la base.
La base que uso SAP DB, de su pagina baje el driver "sapdbc.jar".
Utilizo Eclipse como IDE, en el cual hice la referencia a una Variable ClassPath, con el driver .jar .
Pero al querer conectarse, en el browser se porne todo blanco y en la consola del Eclipse sale en siguinente error:
"java.lang.ClassNotFoundException: com.sap.dbtech.jdbc.DriverSapDB"
(..... y un monton de cosas mas....)
les paso un pedazo del codigo donde hago la coneccion para que le den un vistazo y si me pueden dar una mano, les agradeceria:
(les comento que soy principante en JSP, y es la primera ves que me trato de conectar a una SAP_DB desde servelts.......... cabe aclarar...... :-) )
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
Usuario usuario = new Usuario();
Connection connection = null;
usuario.Nombre = request.getParameter("nombre");
usuario.Apellido = request.getParameter("apellido");
String destPage = "/MostrarDatos.jsp";
request.setAttribute("usuario", usuario);
if ((usuario.Nombre.length() == 0) || usuario.Apellido.length() == 0))
{
destPage = "/FaltanDatos.jsp";
}
else
{
String driverClassName= "com.sap.dbtech.jdbc.DriverSapDB";
String driverUrl = "jdbc:sapdb://onyx/PRUEBA";
String user = "DBA";
String password = "DBA";
String queryString = "";
try
{
Class.forName (driverClassName);
connection = DriverManager.getConnection(driverUrl, user, password); //conectamos
Statement statement = connection.createStatement ();
queryString = "INSERT INTO USUARIO (USUARIO_ID, USUARIO_NOMBRE, USUARIO_APELLIDO) " + " VALUES (1,'" + usuario.Nombre + "', '" + usuario.Apellido + "')";
int i = statement.executeUpdate(queryString);
if (statement != null) statement.close();
if (connection != null) connection.close();
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(destPage);
dispatcher.forward(request, response);
}
catch (SQLException e)
{
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
}
La base que uso SAP DB, de su pagina baje el driver "sapdbc.jar".
Utilizo Eclipse como IDE, en el cual hice la referencia a una Variable ClassPath, con el driver .jar .
Pero al querer conectarse, en el browser se porne todo blanco y en la consola del Eclipse sale en siguinente error:
"java.lang.ClassNotFoundException: com.sap.dbtech.jdbc.DriverSapDB"
(..... y un monton de cosas mas....)
les paso un pedazo del codigo donde hago la coneccion para que le den un vistazo y si me pueden dar una mano, les agradeceria:
(les comento que soy principante en JSP, y es la primera ves que me trato de conectar a una SAP_DB desde servelts.......... cabe aclarar...... :-) )
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
Usuario usuario = new Usuario();
Connection connection = null;
usuario.Nombre = request.getParameter("nombre");
usuario.Apellido = request.getParameter("apellido");
String destPage = "/MostrarDatos.jsp";
request.setAttribute("usuario", usuario);
if ((usuario.Nombre.length() == 0) || usuario.Apellido.length() == 0))
{
destPage = "/FaltanDatos.jsp";
}
else
{
String driverClassName= "com.sap.dbtech.jdbc.DriverSapDB";
String driverUrl = "jdbc:sapdb://onyx/PRUEBA";
String user = "DBA";
String password = "DBA";
String queryString = "";
try
{
Class.forName (driverClassName);
connection = DriverManager.getConnection(driverUrl, user, password); //conectamos
Statement statement = connection.createStatement ();
queryString = "INSERT INTO USUARIO (USUARIO_ID, USUARIO_NOMBRE, USUARIO_APELLIDO) " + " VALUES (1,'" + usuario.Nombre + "', '" + usuario.Apellido + "')";
int i = statement.executeUpdate(queryString);
if (statement != null) statement.close();
if (connection != null) connection.close();
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(destPage);
dispatcher.forward(request, response);
}
catch (SQLException e)
{
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
}
1.- Si estas corriendo el servlet engine (tomcat o lo que sea) por fuera de Eclipse, entonces el driver de SAPDB tiene que estar en el classpath de ese proceso, no en tu proyecto Eclipse.
2.- Si estas corriendo al servlet engine como parte de tu proyecto Eclipse, entonces debes ir al menu project/properties y agregar el JAR del driver a la lista de JARs del proyecto.
3.- Una observacion adicional: cuando programas servlets o JSPs, lo mas recomendable es usar la clase DataSource para obtener las conexiones de un pool en vez de crear una conexion en cada request.
Saludos,
Martin Cordova
-----
Dinamica Framework for J2EE
Free, easy and powerful
http://www.martincordova.com
2.- Si estas corriendo al servlet engine como parte de tu proyecto Eclipse, entonces debes ir al menu project/properties y agregar el JAR del driver a la lista de JARs del proyecto.
3.- Una observacion adicional: cuando programas servlets o JSPs, lo mas recomendable es usar la clase DataSource para obtener las conexiones de un pool en vez de crear una conexion en cada request.
Saludos,
Martin Cordova
-----
Dinamica Framework for J2EE
Free, easy and powerful
http://www.martincordova.com