Problemas para conectar SAP_DB con JDBC

DAD
30 de Abril del 2004
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();
}

}
}

Martin Cordova
30 de Abril del 2004
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