Problemas con struts y acceso a mysql
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
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
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.
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.
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");
He creado el datasource pero nada, me sigue fallando.
El error me da en :
DataSource ds = (DataSource) envCtx.lookup ("jdbc/empleo");
