Cita:
Iniciado por asile Bueno pues estoy haciendo una aplicación con jsp (usando el framework struts). Cómo entorno de desarrollo uso eclipse. Y para probarla con tomcat en local funciona perfectamente
Pero la he subido a un servidor para poder probarla desde más sitios y me da el siguiente error.
org.apache.jasper.JasperException: The absolute uri: http://struts.apache.org/tags-tiles cannot be resolved in either web.xml or the jar files deployed with this application
el codigo en mis paginas es el siguiente:
Código PHP:
<%@taglib prefix="c" uri="/WEB-INF/tlds/c.tld" %>
<%@taglib prefix="fmt" uri="/WEB-INF/tlds/fmt.tld" %>
<%@taglib prefix="html" uri="/WEB-INF/tlds/struts-html.tld" %>
<%@taglib prefix="bean" uri="/WEB-INF/tlds/struts-bean.tld" %>
<%@taglib prefix="jcaptcha" uri="/WEB-INF/tlds/jcaptcha.tld" %>
<%@taglib prefix="tiles" uri="/WEB-INF/tlds/struts-tiles.tld" %>
me da el siguiente error:
org.apache.jasper.JasperException: File "/WEB-INF/tlds/struts-tiles.tld" not found
y en el web.xml tengo lo siguiente:
Código PHP:
<taglib>
<taglib-uri>/tags/struts-tiles</taglib-uri>
<taglib-location>/WEB-INF/tlds/struts-tiles.tld</taglib-location>
</taglib>
Si alguien sabe la solución muchas gracias :D
Hola de nuevo Elisa. (ya me aprendi el nombre de algunos foristas jeje).
Mira algo que puedo notar es que el error que te da es por que no esta determinado tu tag correctamente, te traduzco el error al español para que lo entiendas.
org.apache.jasper.JasperException: La uri absoluta: http://struts.apache.org/tags-tiles no puede resolverse en el web.xml o en el jar de archivos desplegados con esta aplicación.
Regularmente esto sucede cuando no tienes el archivo .tld o no esta configurado en el web.xml ahora bien otra cosa que puedo ver es que tu no tienes los .tld en el primer nivel del WEB-INF. Por ejemplo en mis aplicaciones yo los tengo asi.
Código PHP:
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
Y tu los tienes en una capa mas llamada tlds
Código PHP:
<%@taglib prefix="bean" uri="/WEB-INF/tlds/struts-bean.tld" %>
<%@taglib prefix="jcaptcha" uri="/WEB-INF/tlds/jcaptcha.tld" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
En realidad esto no importa lo que importa es como los declares en el web.xml para empezar el uri no lo declares asi como lo tienes por configuración y estándar de java eso es bad code, en tu web.xml has esto.
Código PHP:
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-template.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
Y pon todas tus librerias tld con la direccion como tu la tienes por ejemplo /WEB-INF/tlds/struts-bean.tld, una vez que hagas esto verifica que existan los archivos.tld con eso debe de ejecutarse tu aplicación en cualquier servidor.
por ultimo jeje te esta tronando por que se te paso meter el directorio tlds
Código PHP:
<taglib>
<taglib-uri>/tags/struts-tiles</taglib-uri>
<taglib-location>/WEB-INF/tlds/struts-tiles.tld</taglib-location>
</taglib>
ponlo asi
Código PHP:
<taglib>
<taglib-uri>/WEB-INF/tlds/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/tlds/struts-tiles.tld</taglib-location>
</taglib>
checa esto y veras que jala.
Saludos desde México
Lino