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

HTTP Status 500 – Internal Server Error

HTTP Status 500 – Internal Server Error Type Exception Report

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

Exception

java.lang.NullPointerException br.com.listavip.ConvidadoRepository.obterTodos(ConvidadoRepository.java:20) br.com.listavip.ConvidadoService.obterTodos(ConvidadoService.java:8) br.com.listavip.ListaVIPServlet.doGet(ListaVIPServlet.java:21) 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:52) Note The full stack trace of the root cause is available in the server logs.

Apache Tomcat/8.5.57

Alguem pode me ajudar com esse erro?

2 respostas
solução!

Olá Renato, tudo bem? Parece algum problema com a conexão do banco de dados, nao sei em que ponto você está do curso, mas segue uma parte do meu código para comparação. Alterei o nome do projeto, mas a lógica é a mesma.

public List<Convidado> obterTodos() throws ServletException {

        try {

            Connection conexao = new FabricaDeConexao().obterConexao();

            String select = "select * from convidado";

            PreparedStatement preparedStatement = conexao.prepareStatement(select);

            ResultSet rs = preparedStatement.executeQuery();

            List<Convidado> listaDeConvidados = new ArrayList<>();

            while (rs.next()) {

                Integer id = rs.getInt("id");
                String nome = rs.getString("nome");
                String email = rs.getString("email");
                String telefone = rs.getString("telefone");

                Convidado convidado = new Convidado(id, nome, email, telefone);
                listaDeConvidados.add(convidado);


            }

            conexao.close();
            return listaDeConvidados;
        } catch (SQLException e) {
            e.printStackTrace();
            throw new ServletException("Deu erro de: " + e);
        }
    }
public class FabricaDeConexao {

    public Connection obterConexao() {

        try {

            String driverName = "com.mysql.jdbc.Driver";

            Class.forName(driverName);

            String serverName = "localhost:3306"; //sempre bom configurar a porta do mysql

            String mydatabase = "listavip"; 

            String url = "jdbc:mysql://" + serverName + "/" + mydatabase;

            String username = "root";

            String password = "teste123"; // talvez esteja sem senha

            Connection connection = DriverManager.getConnection(url, username, password);

            return connection;

        } catch (ClassNotFoundException e) {

            return null;

        } catch (SQLException e) {

            e.printStackTrace();

        }
        return null;

    }

O problema foi resolvido, faltava apenas inserir a porta padrão do mysql e agora ta funcionando, muito obrigado!