Conexión con mysql desde jsp
Buenas tardes,
Agradecería me puedan ayudar con un problema que tengo.
Les cuento, estoy intentando conectar con una base de datos en MySql, el problema es que me arroja un error de driver "com.mysql.jdbc.Driver" ya intente varias cosas, entre ellas crear una clase con el método main para hacer la misma conexión que deceo hacer y con esta clase si funciona, me trae los datos que solicito sin problema, pero cunado lo intento hacer desde un Servlet me manda el error que les comento, quiero creer que ademas de agregar el .jar de mysql-connector-java-5.1.14-bin necesito otra cosa pero no se cual es.
Código de la clase
El servlet tiene el mismo código, la clase DBManager crea la conexión con los siguientes métodos:
De antemano muchas gracias.
- Inicie sesión o regístrese para enviar comentarios
RTFS
RTFS. No especificas qué error o excepción obtienes; puede ser de ClassNotFound o de conexión denegada o de URL inválido o problema de autenticación, etc.
Problemas con classpath o classloader
Sería bueno que muestres cuál es el error o excepción que te envía tu programa. Probablemente sea cuestión de que no se encuentra el .jar con el driver en el lugar indicado, puede estar repetido o hacer falta. ¿En qué servidor estas probando tu aplicación?
Supongo que esto es para algún proyecto escolar. Como nota te comento que es poco recomendable realizar las conexiones a base de datos desde los archivos jsp.
ClassNotFound
Gracias por sus respuestas,
Les comento que la excepción que arroja es
esta la "cacho" y por el momento únicamente muestro el mensaje que obtengo con
.
El .jar lo tengo en la carpeta src de mi proyecto en eclipse, después realice lo siguiente:
Clic derecho en el proyecto.
selecciono Build Path
Configure Buil Path
En libreries agregar jar externos.
Y agrego el .jar del conector.
Después en Order and export selecciono el .jar que acabo de agregar.
Estoy usando GlassFish, y no estoy creando los objetos directamente en los JSP, lo estoy haciendo en un servler en donde voy a crea un ArrayList para guardar los datos de un tipo objeto, y enviare el array list como parámetro al jsp con
.
¿alguna idea?
Problemas con classpath
Para que el classloader (cargador de clases del servidor web o servidor de aplicaciones) pueda tener acceso a los archivos jar, estos deben ubicarse ya sea en la carpeta lib del servidor o en la carpeta lib de la aplicación web.
Es mas sencillo configurarlo el .jar dentro de tu proyecto, por lo que te sugiero lo hagas de esta manera.
Supongo que estas generando un archivo .war que subes al Glassfish.
En tu archivo war debe estar contenida la carpeta WEB-INF, dentro de la cual encontrarás la carpeta "classes" y la carpeta "lib" (puede haber mas).
La carpeta classes contiene los archivos compilados de tu aplicación, mientras que en lib deberás encontrar todas las bibliotecas (jars externos) que utiliza tu aplicación. Verifica que el jar del driver se encuentre allí.
Ejemplo conexion java - mysql
public static synchronized Connection getConnection()
throws SQLException
{
if (driver == null)
{
try
{
JDBC_DRIVER = "com.mysql.jdbc.Driver";
JDBC_URL = "jdbc:mysql://localhost/SCRUMMANAGER?user=root&password=123456";
JDBC_USER = "root";
JDBC_PASSWORD = "123456";
// oracle
Class jdbcDriverClass = Class.forName( JDBC_DRIVER );
driver = (Driver) jdbcDriverClass.newInstance();
DriverManager.registerDriver( driver );
}
catch (Exception e)
{
System.out.println( "Failed to initialise JDBC driver" );
e.printStackTrace();
}
}
return DriverManager.getConnection(
JDBC_URL,
JDBC_USER,
JDBC_PASSWORD
);
}
@Neko Pui Gracias!!
Realice lo que me comentaste y funciono!!, borre los .jar que tenia en src y lo copie en la carpeta NombredelProyecto\WebContent\WEB-INF\lib de mi proyecto. también borre la libreria de Configure Buil Path. Todo esto lo hice locamente en mi computadora y Eclipse, exporte el proyecto a un .war lo monte en mi servidor de GlassFish y también funciono.
@hectordc, gracias por el ejemplo.
Nuevamente, muchas gracias.