4
respostas

Erro depois de baixar o jstl na lib e rodar no navegador, HTTP Status 500 – Internal Server Error

Esse é o código que está no meu listaEmpresas.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@ page import="java.util.List, br.com.alura.gerenciador.servlet.Empresa"%>
   <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Java Standard Taglib</title>
</head>
<body>
    Lista de empresas : <br />

    <ul>
        <c:forEach items="${empresas}" var="empresa">
            <li>${empresa.nome}</li>
        </c:forEach>
    </ul>

</body>
</html>

Esse é o erro que está dando no navegador

HTTP Status 500 – Internal Server Error
Type Exception Report

Message org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.listaEmpresas_jsp

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

Exception

org.apache.jasper.JasperException: org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.listaEmpresas_jsp
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:605)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:423)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    br.com.alura.gerenciador.servlet.ListaEmpresasServlet.doGet(ListaEmpresasServlet.java:29)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.listaEmpresas_jsp
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:198)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:414)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    br.com.alura.gerenciador.servlet.ListaEmpresasServlet.doGet(ListaEmpresasServlet.java:29)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause

java.lang.ClassNotFoundException: org.apache.jsp.listaEmpresas_jsp
    java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:435)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:59)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:193)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:414)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    br.com.alura.gerenciador.servlet.ListaEmpresasServlet.doGet(ListaEmpresasServlet.java:29)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Note A pilha de erros completa da causa principal está disponível nos logs do servidor.

Apache Tomcat/9.0.41
4 respostas
java.lang.ClassNotFoundException: org.apache.jsp.listaEmpresas_jsp

Como está o comando forward para a página listaEmpresas.jsp na sua Servlet?

Segue o código da minha ListaEmpresasServlet

package br.com.alura.gerenciador.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ListaEmpresasServlet
 */
@WebServlet(name = "listaEmpresas", urlPatterns = { "/listaEmpresas" })
public class ListaEmpresasServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {

        Banco banco = new Banco();
        List<Empresa> lista = banco.getEmpresas();
        request.setAttribute("empresas", lista);

        RequestDispatcher rd = request.getRequestDispatcher("/listaEmpresas.jsp");
        rd.forward(request, response);


    }

}

Segue o código da minha listaEmpresas.jsp

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

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Java Standard Taglib</title>
</head>
<body>

    <c:if test="${not empty empresa }"
        Lista de empresas : <br />
    </c:if>

    <ul>
        <c:forEach items="${empresas}" var="empresa">
            <li>${empresa.nome} ${empresa.dataAbertura} - <fmt:formatDate value="${empresa.dataAbertura}" pattern="dd/MM/yyyy"/></li>
        </c:forEach>
    </ul>

</body>
</html>
@WebServlet("/listaEmpresas")
public class ListaEmpresasServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void service(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        Banco banco = new Banco();
        List<Empresa>lista = banco.getEmpresas();
        request.setAttribute("empresas", lista);

        RequestDispatcher dispatcher = request.getRequestDispatcher("/listaEmpresas.jsp");
        dispatcher.forward(request, response);
    }
@WebServlet("/listaEmpresas")  coloquei assim
e metodo nao dopost  seria get pois vc ta mostrando informaçoes  no caso do codigo acima usei service que usa doget e dopost.
}

Oi Carol

No seu código está doPost:

protected void doPost(HttpServletRequest request, HttpServletResponse response) 

troque para doGet:

protected void doGet(HttpServletRequest request, HttpServletResponse response)