martes, 7 de octubre de 2008

JSTL 1.2 + Tomcat 6

Según la especificación Java EE 5, todos los productos Java EE deben proporcionar una implementación de JSTL. Tomcat no proporciona dicha implementación y en la web de Sun no he encontrado la de referencia para descargar.

La solución más simple es tomar la que viene con Glassfish:

%INSTALACION_GLASSFISH%\lib\appserv-jstl.jar
%INSTALACION_GLASSFISH%\lib\javaee.jar

Al introducir esas 2 librerias en el directorio /WEB-INF/lib de nuestra aplicación

INFO: validateJarFile(c:\tomcat6.0.16\webapps\miJsp\WEB-INF\lib\javaee.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2
. Offending class: javax/servlet/Servlet.class


Una posible solución es copiar el archivo javaee.jar en %CATALINA_HOME%\lib y todo funcionara sin problemas aunque personalmente he optado por eliminar todo el contenido del fichero javaee.jar dejando únicamente lo relativo a jstl.

Para vuestra comodidad he subido ambos archivos aqui.

P.D. Me he leido la licencia que viene con Java EE y creo que no hay problema legal en esta subida basándome en:

We protect your rights with a two-step method: (1) we copyright the library, and
(2) we offer you this license, which gives you legal permission to copy,
distribute and/or modify the library.

3 comentarios:

Unknown dijo...

Gracias Jordi!

javIut dijo...

Buen dia amigo. Estoy Usando Netbeans 6.9.1 Java EE 6 y GLassFish V3. y JSTL 1.2(classpath) pero no me lo reconoce que me recomendarias. gracias.

Jordi Domingo dijo...

Hola Javlut,

En principio no deberias tener ningún problema ya que Glassfish 3 incorpora JSTL. Asegurate de estar utilizando las uri's correctas.
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

Un saludo :)