Problemas de contexto con Struts
Hola. Resulta que estoy migrando una aplicación que tenÃa en mi
trabajo, a mi pc de casa. El caso es que no me funciona correctamente la configuración que tengo en el server.xml, y me he vuelto loco a probar cosas y no he conseguido nada.
El error que me da es el siguiente:
“javax.naming.NameNotFoundException: el nombre java:comp/env no este
asociado a este contexto en el método getConnection"
Yo pienso que tengo bien configurado el context y no logro ver donde tengo el error, aquà envÃo una copia del context:
<Context path="/inmobinet" docBase="/inmobinet/codigo/" debug="0" reloadable="true">
<Resource name="jdbc/inmobinet" auth="Container" scope="Shareable" type="javax.sql.DataSource"></Resource>
<ResourceParams name="jdbc/inmobinet">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<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:3306/inmobinet?autoReconnect=true</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>8</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>4</value>
</parameter>
</ResourceParams>
</Context>
En el código las instrucciones que tengo son:
javax.naming.Context initCtx = new javax.naming.InitialContext();
javax.naming.Context envCtx = (javax.naming.Context) initCtx.lookup("java:comp/env");
javax.sql.DataSource ds = (javax.sql.DataSource) envCtx.lookup("jdbc/inmobinet");
Yo opino que está todo correcto, pero no logro hacer que me
funcione. Tengo otras aplicaciones con Struts instaladas y me van bien, pero a esta no se que le pasa.
Por si sirve de ayuda, el usuario de la BD es root y el password es
vacÃo, y el nombre de la BD es inmobinet. Tengo instalado el Tomcat 4.1.30.
Si alguien me pudiera hechar una mano, ya no se que probar.
trabajo, a mi pc de casa. El caso es que no me funciona correctamente la configuración que tengo en el server.xml, y me he vuelto loco a probar cosas y no he conseguido nada.
El error que me da es el siguiente:
“javax.naming.NameNotFoundException: el nombre java:comp/env no este
asociado a este contexto en el método getConnection"
Yo pienso que tengo bien configurado el context y no logro ver donde tengo el error, aquà envÃo una copia del context:
<Context path="/inmobinet" docBase="/inmobinet/codigo/" debug="0" reloadable="true">
<Resource name="jdbc/inmobinet" auth="Container" scope="Shareable" type="javax.sql.DataSource"></Resource>
<ResourceParams name="jdbc/inmobinet">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<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:3306/inmobinet?autoReconnect=true</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>8</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>4</value>
</parameter>
</ResourceParams>
</Context>
En el código las instrucciones que tengo son:
javax.naming.Context initCtx = new javax.naming.InitialContext();
javax.naming.Context envCtx = (javax.naming.Context) initCtx.lookup("java:comp/env");
javax.sql.DataSource ds = (javax.sql.DataSource) envCtx.lookup("jdbc/inmobinet");
Yo opino que está todo correcto, pero no logro hacer que me
funcione. Tengo otras aplicaciones con Struts instaladas y me van bien, pero a esta no se que le pasa.
Por si sirve de ayuda, el usuario de la BD es root y el password es
vacÃo, y el nombre de la BD es inmobinet. Tengo instalado el Tomcat 4.1.30.
Si alguien me pudiera hechar una mano, ya no se que probar.
El problema no parece ser de Struts, sino de tomcat. Asegúrate de haber configurado el context correctamente, porque por algún motivo, no te pilla el java:comp/env (que es el contexto de aplicación).
¿Has desplegado correctamente la aplicación en tu Tomcat?
Prueba lo siguiente: Haz un .JSP normal y corriente, en el contexto, y créate en él un BEAN de aplicación:
<jsp:useBean class="la.clase.que.quieras" id="nombre" scope="application" />
con esto, juega con propiedades y comprueba que el bean es visible y único para toda la aplicación. Esto demostrarÃa si el entorno de contexto de la aplicación está disponible para introducir en él datos (lo mismo un bean que un DataSource).
Salu2
Ken
¿Has desplegado correctamente la aplicación en tu Tomcat?
Prueba lo siguiente: Haz un .JSP normal y corriente, en el contexto, y créate en él un BEAN de aplicación:
<jsp:useBean class="la.clase.que.quieras" id="nombre" scope="application" />
con esto, juega con propiedades y comprueba que el bean es visible y único para toda la aplicación. Esto demostrarÃa si el entorno de contexto de la aplicación está disponible para introducir en él datos (lo mismo un bean que un DataSource).
Salu2
Ken
