Solucionado (ver solución)
Solucionado
(ver solución)
6
respuestas

[Sugerencia] JSTL Tomcat 9 / Java 8 / Javax - java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator

Sugerencia para los compañeros que están siguiendo paso a paso la secciones de "preguntas-frecuentes" del discord y el curso en su propio proyecto y esten usando el Tomcat version 9.

En el discord comparte esta información pero creo que les falta un detalle mas (aparte de usar el Tomcat 9).

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidadSi tienen este problema (java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator) es por que están usando las librerías que compartes el instructor en esta sección para descargar.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Les aconsejo lo siguiente:

  1. Que no usen el los .jar de la biblioteca jakarta ya que son netamente para la version Tomcat 10.
  2. Usen las siguientes bibliotecas: http://www.java2s.com/Code/Jar/j/Downloadjavaxservletjspjstl121jar.htm http://www.java2s.com/Code/Jar/j/Downloadjavaxservletjspjstlapi121jar.htm y los colocan en la misma carpeta de WEB-INF/lib.
  3. También deben tener la bibliotecas: javax.servlet.jar / jstl-1.2.jar / jstl-api-1.2.jar en la ruta de WEB-INF/lib. (busquenlo tal cual en la web para descargarlo), estos 2 últimos lo pueden encontrar en este link: https://www.alura.com.br/artigos/tomcat-guia-sobrevivencia-aplicacoes-legadas (use google chorme para traducirlo)
  4. Deben asegurarse que en los servlets creado en el package: com.alura.gerenciador.servlet todos deben tener import de javax y NO de jakarta.
  5. Asegúrense de tener en la configuración del proyecto gerenciador (click derecho)/properties/Project Facets como: Dynamic Web Module 4.0 - Java 1.8 - JavaScript 1.0
  6. Tampoco no deben modificar nada del web.xml.

Tarde mucho en encontrar todo la configuración, espero les ayude.

6 respuestas
solución!

¡Hola Gustavo! Muchas gracias por compartir tus sugerencias para solucionar el problema con JSTL en Tomcat 9. Es muy útil para quienes están siguiendo el curso y se encuentran con este inconveniente.

Es importante tener en cuenta las bibliotecas que se están utilizando y asegurarse de que sean compatibles con la versión de Tomcat que se está utilizando. Además, es fundamental seguir las recomendaciones de importación de paquetes y no modificar el archivo web.xml.

Gracias por tomarte el tiempo de compartir esta información y ayudar a otros estudiantes. ¡Espero que tengas éxito en tus proyectos y buenos estudios!

Muchas gracias Gustavo me sirvió muchisimo tu ayuda. No hubiera podido continuar fácilmente sin esto.

Hice lo mismo! Enseguida me dí cuenta cundo vi que comenzaba con jakarta, en vez de javax. Ahora, no entiendo a los instructores. Se ve que los cursos van quedando desactualizados y no hacen nada??? O sea, da la impresión que ni siquiera ven los videos. Con respeto se los digo!! Para mí es un desafío y se los agradezco, porque de esta manera me obligan a corregir todos estos fallos para que funcione, y buscar las opciones más acordes y viables; y creanme que todo eso hace que se adquiera conocimiento y experencia. Saludos a todos!!!

Por las dudas, para aclarar todo esto.

solo hay que reemplazar estos archivos dentro de la carpeta lib de tu proyecto en el Eclipse:

en vez de:  "jakarta.servlet.jsp.jstl-2.0.0.jar" y "jakarta.servlet.jsp.jstl-api-2.0.0.jar"

deben ir: "javax.servlet.jsp.jstl-1.2.1.jar" y "javax.servlet.jsp.jstl-api-1.2.1.jar"

Solo hagan eso y vuelvan a escribir el tag del link por las dudas, para que funcione.

"<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>"

Yo uso Tomcat 10.1 y nunca me sirvió, apenas usé los .jar se me dañó todo, tuve que continuar sin probar más nada.

Muchas gracias Gustavo y Eduardo por la ayuda, también desde que vi que los archivos jar eran jakarta sabía que no serían compatibles, pero con su aporte se solucionó por completo. gracias!!