Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Não consigo prosseguir com o curso por causa do JSTL

Dps de começar a usar o JSTL1.2.jar começou a dar esse erro: ps: To usando jdk 15, apache 10, e o JSTL1.2.jar esta dentro do WEB-INF/lib/ assim como foi requisitado pelo prof. Nico

HTTP Status 500 – Internal Server Error Type Exception Report

Message java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

jakarta.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) br.com.alura.gerenciador.servelet.ListEmpresasServlet.doGet(ListEmpresasServlet.java:37) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:663) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:770) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) Root Cause ...(um monte de coisa que não cabe aqui)

Acontece qnd eu tento abrir meu jsp

<%@page import="br.com.alura.gerenciador.servelet.Empresa"%>
<%@page import="java.util.List"%>
<%@page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Java Standard TagLib JSTL</title>
</head>
<body>
Aqui eu usei JSTL com linguagem de expressão $ <br>
<%//por de baixo dos panos ele da um request.getAttribute("listempresas")
  //E variavel.nome chama o getNome %>
    <ul>
        <c:forEach items="${listEmpresas}" var="variavel">
            <li>${variavel.nome}</li>
        </c:forEach>
    </ul>

Aqui eu usei scriptlets <br>
<% 
    List<Empresa> listEmpresa = (List<Empresa>)request.getAttribute("listEmpresas"); 
%>
<ul>
<%
for (Empresa empresa : listEmpresa) {
    out.println("<li>"+empresa.getNome()+"</li>");
}
%>
</ul>
</body>
</html>

Eu vi em outro tópico no fórum que foi resolvido trocando a versão do tomcat pra 9. Acontece que qnd eu troquei pra versão do tomcat 9 meus jsp não conseguem ser encontrados, da erro 404. Help pls!

6 respostas
solução!

Boa Tarde, tudo bom ?

Eu estava com o mesmo erro, resolvi da seguinte maneira:

1) Instalei o Tomcat 9 2) Na aba server cliquei com o botão direito -> new -> server e fiz a configuração como a da primeira aula, mas agora passando o caminho do Tomcat 9 3) Botão direito no projeto "Gerenciador" -> properties -> Targeted Runtimes -> selecionei o Tomcat 9 e tirei o 10 4) Arrumar os imports do projeto que agora são javax e nao jakarta 5) Na aba de servidores clica com o botão direito no Tomcat 9 -> add and remove -> coloca o projeto lá pra ele 6) Rodar o Tomcat 9

com esses passos o projeto funcionou :)

tive o mesmo problema acho que todos os alunos daqui para frente terão esse mesmo problema

eu resolvi de um jeito diferente e aparentemente funcionou. Gerenciador -> pasta Apache tomcat v10 e substitui com botão direito propriets e la dentro coloquei a tomcat v9.0

Ola, estou com o mesmo problema. Voce consegui solucionar? Poderia me falar com fez?

Oi Daniel, eu fiz o seguinte: Eu baixei o projeto que a Alura disponibiliza ao final de cada parte do curso, só pra ter certeza que meu código não tinha nada de errado, eu voltei lá na primeira aula e baixei exatamente as versão do Apache que o Nico usou. Eu exclui meu projeto todo, removi o Apache que eu tinha e instalei a versão exata que o Nico usa. Pra mim deu certo, boa sorte!

Ola Rodrigo, fiz exatamente isso e resolveu. Muito Obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software