jueves, 28 de febrero de 2013

Configuracion de Struts 1.3.10 taglib sobre JBoss as 6

Me encontré con que debo migrar la aplicación antes realizada en Struts 1.3.10, que corre muy bien sobre JBoss As 5, a JBoss AS 6, pero me aparece un error que tiene que ver con :

http://java.sun.com/j2ee/dtds/web-jsptaglib_1_1.dtd

donde se decía que no se podía resolver o estaba mal formada.

Todo tiene que ver con el formato de las tld de struts, como anteriormente el proyecto se había creado en Struts 1.2, quedaron las tld con el formato anterior (1_1), entonces hay que cambiar al formato correcto (1_2), para ello hay que modicar los archivos que se encuentran en :

[APP_HOME]/WEB-INF/struts-bean.tld
[APP_HOME]/WEB-INF/struts-logic.tld
[APP_HOME]/WEB-INF/struts-nested.tld
[APP_HOME]/WEB-INF/struts-tiles.tld
[APP_HOME]/WEB-INF/struts-html.tld

Y colocar el formato para la versión 1.2 reemplazando:

Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd

por

Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_2.dtd

y colocando el formato de trags correspondiente reemplazando donde aparezca:

tlibversion por tlib-version
jspversion por jsp-version
shortname por shortname
tagclass por tag-class
teiclass por tei-class
bodycontent por body-content

Asi debe quedar el codigo:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_2.dtd">
<taglib>
    <tlib-version>1.3</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>bean</short-name>

Como se ve deben quedar las versiones correspondientes a cada caso:


<tlib-version>1.3</tlib-version>
<jsp-version>1.2</jsp-version>



Hay que realizar estos cambios en todos los archivos antes mencionados, guardar cambios y reconstruir el war de la aplicación.

Algo mas, si en la aplicación en las librerías esta una libreria bsf*.jar esta debe ser eliminada de esa ruta, ya que JBoss ya tiene esa librería en su path.

:)