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

Nao consigo acessar ListaDeEmpresas

Bom dia, eu estou tendo um problema em aceder o ListaDeEmpresas.jsp.

Pagina inicial Registro.html

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
</head>
<body>
Bem-vindo ao serviço ao Registro de Empresas.
<br><br>
Escolha uma das seguintes opções:
<br>
<br>
<form action="/gerenciador/registro">
       <input type="submit" value="Ver empresas registradas"/>
       <input type="hidden" name="acao" value="listaDeEmpresas"/>
</form>
<form action="/gerenciador/registro">
        <br>
        <input type="submit" value="Registrar mais empresas"/>
        <input type="hidden" name="acao" value="novaEmpresa"/>
</form>
</body>
</html>

O Servlet registro

package br.com.alura.gerenciador.servlet;

import java.io.IOException;


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;

import br.com.alura.gerenciador.acoes.EditEmpresa;
import br.com.alura.gerenciador.acoes.ListaDeEmpresas;
import br.com.alura.gerenciador.acoes.NewCompany;
import br.com.alura.gerenciador.acoes.editcompany;
import br.com.alura.gerenciador.acoes.erasecompany;
import br.com.alura.gerenciador.acoes.novaEmpresa;



@WebServlet(name = "Registro", urlPatterns = { "/registro" })
public class registro extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
     */
    protected void service (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {

        String nome=null;
        String acao = request.getParameter("acao"); 

        if(acao.equals("listaDeEmpresas")) {
            ListaDeEmpresas accao = new ListaDeEmpresas();
            nome=accao.exe(request, response);
        }else if(acao.equals("erasecompany")) {
            erasecompany accao = new erasecompany();
            nome= accao.exe(request, response);
        }else if(acao.equals("newcompany")) {
            NewCompany accao =new NewCompany();
            nome= accao.exe(request, response);
        }else if(acao.equals("editcompany")) {
            editcompany accao = new editcompany();
            nome=  accao.exe(request, response);
        }else if(acao.equals("EditEmpresa")) {
            EditEmpresa accao = new EditEmpresa();
            nome= accao.exe(request, response);
        }else if(acao.equals("novaEmpresa")) {
            novaEmpresa accao = new novaEmpresa();
            nome =accao.exe(request, response);
        }

        String [] link = nome.split(":");

        if(link[0].equals("forward")){
            RequestDispatcher rq = request.getRequestDispatcher("WEB-INF/jsp/"+link[1]);
            rq.forward(request, response);
        }else if(link[0].equals("redirect")) {
            response.sendRedirect("WEB-INF/jsp/"+link[1]);

    }
    }
}

a classe ListeDeEmpresas

package br.com.alura.gerenciador.acoes;

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


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

import br.com.alura.gerenciador.modelo.BancoDeDados;
import br.com.alura.gerenciador.modelo.Empresa;

/**
 * Servlet implementation class ListaDeEmpresas
 */
@WebServlet("/listaDeEmpresas")
public class ListaDeEmpresas  {


    public String exe(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{

        List<Empresa> lista = BancoDeDados.getLista();

        request.setAttribute("listaDeEmpresa", lista);
        return "forward:listaempresas.jsp";

    }
}

Não entendo o problema... Daria para me ajudar? Muito obrigado desde já!

3 respostas

Mas o que está acontecendo ?

Quando coloco no url: http://localhost:8080/gerenciador/registro?acao=listaDeEmpresas. da-me este erro:

HTTP Status 500 – Internal Server Error
Type Exception Report

Message java.lang.NoClassDefFoundError: org/apache/jsp/WEB_002dINF/Jsp/listaempresas_jsp (wrong name: org/apache/jsp/WEB_002dINF/jsp/listaempresas_jsp)

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

Exception

javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/jsp/WEB_002dINF/Jsp/listaempresas_jsp (wrong name: org/apache/jsp/WEB_002dINF/jsp/listaempresas_jsp)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    br.com.alura.gerenciador.servlet.registro.service(registro.java:59)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause

java.lang.NoClassDefFoundError: org/apache/jsp/WEB_002dINF/Jsp/listaempresas_jsp (wrong name: org/apache/jsp/WEB_002dINF/jsp/listaempresas_jsp)
    java.base/java.lang.ClassLoader.defineClass1(Native Method)
    java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
    java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
    java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
    java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
    java.base/java.security.AccessController.doPrivileged(Native Method)
    java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
    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:413)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    br.com.alura.gerenciador.servlet.registro.service(registro.java:59)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Hinweis Der komplette Stacktrace der Ursache ist in den Server logs zu finden

solução!

Bom dia, ja consegui encontrar o erro, estava no servlet registro: response.sendRedirect("WEB-INF/jsp/"+link[1]); Esta parte "WEB-INF/jsp/" era so no "forward" não no "redirect". Um bom dia para todos.