Bom dia/tarde/noite, :D
Se alguém puder me ajudar ficarei muito grato, já tentei diversas coisas e não consigo sair desse erro :(.
Depois de compilar o java usando maven 3.6.0 com tomcat 9.0.55, todas as páginas do projeto funcionam, menos uma ("/listaEmpresas"), a qual deveria pegar a lista de empresas armazenadas e retornar na tela para o usuário. As demais páginas abrem normalmente. Penso que pode ser a importação da Classe empresa no arquivo .JSP, porém, não sei como importar corretamente, estou usando o VS Code e não consigo fazer o jsp reconhecer a classe Empresa.
Recebo o erro:
""" 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:589) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:425) """ """ GRAVE: Servlet.service() for servlet [jsp] threw exception org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: [15] in the generated java file: [/home/home/.config/Code/User/workspaceStorage/01fc8d39d3702286b95b6fe64bb70911/adashen.vscode-tomcat/tomcat/apache-tomcat-9.0.55/work/Catalina/localhost/app/org/apache/jsp/listaEmpresas_jsp.java] Only a type can be imported. app.src.main.java.bo.Empresa.java resolves to a package
Stacktrace: at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102) at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:213) at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:487) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:397) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:367) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:351) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605)
"""
listaEmpresas.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="java.util.List, app.src.main.java.bo.Empresa.class"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
Lista de empresas:<ul>
<c:forEach items="${empresas}" var="empresa">
<li>${empresa.nome } - <fmt:formatDate value="${empresa.dataAbertura }" pattern="dd/MM/yyyy"/> </li>
</c:forEach>
</ul>
classe Empresa)
public class Empresa {
private Integer id;
private String nome;
/**
* @return int return the id
*/
public Integer getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return String return the nome
*/
public String getNome() {
return nome;
}
/**
* @param nome the nome to set
*/
public void setNome(String nome) {
this.nome = nome;
}
}
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();
request.setAttribute("empresas", lista);
RequestDispatcher rd = request.getRequestDispatcher("/listaEmpresas.jsp");
rd.forward(request, response);
}
}
Classe Banco:
import java.util.ArrayList; import java.util.List;
public class Banco {
private static List<Empresa> lista = new ArrayList<>();
static {
Empresa empresa1 = new Empresa();
empresa1.setNome("Citrinita");
Empresa empresa2 = new Empresa();
empresa2.setNome("BISCM");
lista.add(empresa1);
lista.add(empresa2);
}
public void adiciona(Empresa empresa){
Banco.lista.add(empresa);
}
public List<Empresa> getEmpresas(){
return Banco.lista;
}
}