2
respostas

Erro no carregamento da JSP

Está ocorrendo um erro na página listaEmpresas.jsp

o mesmo abaixo: Type Exception Report

Message An exception occurred processing [/listaEmpresas.jsp] at line [15]

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

Exception

org.apache.jasper.JasperException: An exception occurred processing [/listaEmpresas.jsp] at line [15]

12:     <ul>
13:     <%
14:         List<Empresa> lista = (List<Empresa>)request.getAttribute("empresas");
15:         for (Empresa empresa : lista) {
16:     %>
17:         <li><%= empresa.getNome() %></li>
18:     <%


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:626)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:515)
    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:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause

java.lang.NullPointerException
    org.apache.jsp.listaEmpresas_jsp._jspService(listaEmpresas_jsp.java:134)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
    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:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

porém eu já revisei o cod, peguei o projeto disponibilizado e continua com o erro :(

2 respostas

Aparentemente, o trecho de código request.getAttribute("empresas") está retornando uma lista vazia.

Faz um teste, tenta deixar sua classe ListaEmpresasServlet assim:

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;

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

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

        Banco banco = new Banco();
        List<Empresa> lista = banco.getEmpresas();

        Empresa empresa = new Empresa();
        empresa.setNome("Alura");

        Empresa empresa2 = new Empresa();
        empresa2.setNome("Caelum");

        lista.add(empresa);
        lista.add(empresa2);

        request.setAttribute("empresas", lista);

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

    }
}

Talvez o erro aconteça porque você está tentando acessar a pagina JSP (/listaEmpresas.jsp). Na verdade, deveremos acessar pelo WebServlet (/listaEmpresas).