Problemas con struts y acceso a mysql

anonimo
10 de Junio del 2005
Hola, mi problema es que no consiguo conectarme a una base de datos mysql. Utilizo el fichero de configuración server.xml de tomcat para obtener los parámetros d configuración.

FICHERO SERVER.XML (la bd se llama empleo, usuario root sin password)
Context path="/empleo" docBase="empleo" debug="0"
reloadable="true">

<Resource name="jdbc/empleo" auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/empleo">
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost/empleo</value>
</parameter>
</ResourceParams>
</Context>

Y TENGO LA SIGUIENTE CLASE
package empleo.dao;

import java.sql.*;
import javax.sql.*;
import javax.naming.*;

public class MySQLDAOFactory extends DAOFactory {

public MySQLDAOFactory() {
}

public static Connection getConnection(){

Connection conn = null;

try{
javax.naming.Context initCtx = new javax.naming.InitialContext();
javax.naming.Context envCtx = (javax.naming.Context) initCtx.lookup("java:comp/env/jdbc/empleo");
javax.sql.DataSource ds = (javax.sql.DataSource) envCtx.lookup("jdbc/root");

conn = ds.getConnection();
return conn;

}catch(Exception e){
System.out.println("MySQLDAOFactory - Error en conexion con base de datos");
System.out.println(e.getMessage());
e.printStackTrace();
}

return null;
}

public ValidacionDAO getValidacionDAO(){
return new MySQLValidacionDAO();
}

}

Si alguien puede ayudarme se lo agradecería.
Un saludo

jimaz
10 de Junio del 2005
No borres el web.xml, no creo que el error este ahi.
Tienes creado un datasource?
Prueba a crea un datasources.
Para configurarlo igual tienes la opcion de boton derecho encima de la clase del datasource y la opcion de settings...

Intenta que tenga este aspecto;

<?xml version = '1.0' encoding = 'windows-1252'?>
<!DOCTYPE data-sources PUBLIC "Orion data-sources" "http://xmlns.oracle.com/ias/dtds/data-sources.dtd">

<data-sources>

<data-source name="empleo" class="com.evermind.sql.DriverManagerDataSource" location="jdbc/empleoCoreDS"
xa-location="jdbc/xa/empleoXADS"
ejb-location="jdbc/empleoDS"
pooled-location="jdbc/empleoPooledDS"
connection-driver="org.gjt.mm.mysql.Driver" username="root" password="" url="jdbc:mysql://localhost/empleo"
inactivity-timeout="30"/>

</data-sources>

Puede que te cree mas lineas de <data-source name>,
no pasa nada puede ser porque tengas connections.
Tu linea de <data-source name="empleo"> debe de ser el primero.

Intentalo y ya me contaras.

Agur.


anonimo
10 de Junio del 2005
Gracias por tu ayuda.
He creado el datasource pero nada, me sigue fallando.
El error me da en :
DataSource ds = (DataSource) envCtx.lookup ("jdbc/empleo");

Juanfer
10 de Junio del 2005
Hola, prueba con esto:

javax.naming.Context envCtx = (javax.naming.Context) initCtx.lookup("java:comp/env");
javax.sql.DataSource ds = (javax.sql.DataSource) envCtx.lookup("jdbc/empleo");

Ya contarás.