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

Servlet não está respondendo

Após criar os métodos das aulas 8, init e destroy, compila normal porém ao realizar a busca empresa, a servlet não apresenta erros, porém também não aparece nenhum informação, segue o código.

@WebServlet(urlPatterns = "/busca")
public class BuscaEmpresa extends HttpServlet {

public BuscaEmpresa() {
    System.out.println("Instanciando uma Servlet do tipo BuscaEmpresa " + this);
}

@Override
public void init() throws ServletException {
    super.init();
    System.out.println("Inicializando a Servlet " + this);
}

@Override
public void destroy() {
    super.destroy();
    System.out.println("Destruindo a Servlet " + this);
}

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        PrintWriter writer = resp.getWriter();
        writer.println("<html>");
        writer.println("<body>");
        writer.println("Resultado da busca:<br/>");
        writer.println("</body>");
        writer.println("</html>");

        filtro = req.getParameter("filtro");
        Collection<Empresa> empresas = new EmpresaDAO()
                .buscaPorSimilaridade(filtro);

        writer.println("<ul>");
        for (Empresa empresa : empresas) {
            writer.println("<li>" + empresa.getId() + ": " + empresa.getNome()
                    + "</li>");
        }
        writer.println("</ul>");
    }
8 respostas

E aí, Jonathan! Tudo certinho, cara? =)

Como você está realizando a busca no navegador? As coisas pararam de funcionar corretamente somente após a inserção dos métodos init() e destroy()? =|

Fábio

Eai tudo certo! =D

O código funciona show, faço a busca de acordo com a aula pelo URI busca?filtro=doce.

A busca funciona, porém o syso não aparece na servlet.

Jonathan,

Ahh, menos mal... Então a busca funciona corretamente! Rs.

Assim que você subir o servidor, tente realizar uma busca e verifique o console... Assim que você realizar a primeira busca, sua Servlet deve ser instanciada e o método init() deve ser chamado, imprimindo o conteúdo dos dois System.out.println(). =)

Por fim, o método destroy() só deve ser invocado no momento da destruição da sua classe, ou seja, quando você derrubar o servidor... Sacou? =)

Foram esses testes que você realizou? Acredito que você estivesse esperando ver as mensagens no console a cada request realizada, correto? Rs...

Fábio

Exato Fábio!

Funciona correto, o certo a servlet deveria só dar chamar o init() quando eu fosse fazer a busca, porém isso não ocorre.

Mesmo ocorre quando dou o stop no servidor, não aparece a mensagem informando que foi "Destruida a servlet".

Nenhuma mensagem ocorre, nem instanciando, iniciando, ou derrubando.

Jonathan,

Que estranho... =|

Você chegou a fazer um clean no projeto e no Tomcat?

Fábio

Acho que tentei também. Vou tentar de novo assim que chegar em casa.

Jonathan,

Conseguiu resolver? =)

Fábio

solução!

Fábio, boa noite.

Não tive tempo de continuar os estudos, fazendo o clean, e abrindo uma nova conexão na servlet, funcionou! =D.

Deve ter sido algum bug do Eclipe! Obg pelo apoio!