Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

10
respostas

SERVLET

package br.com.alura.gerenciador.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;


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.Empresa;
import br.com.alura.gerenciador.dao.EmpresaDAO;

@WebServlet(name="BuscaEmpresa",urlPatterns={"/Busca"})
//@WebServlet(urlPatterns="/busca") <<--- assim também não funciona
public class BuscaEmpresa extends HttpServlet  {


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

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

        String filtro = "doce";
        Collection<Empresa> empresas = new EmpresaDAO().buscaPorSimilaridade(filtro);

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

        writer.println("</body></html>");

    }
}

Senhores, Criei o código exatamente como é mostrado no vídeo de exemplo contudo, ao tentar executar a classe "busca" o mesmo da o seguinte erro:

HTTP Status 404 - /gerenciador/busca

type Status report

message /gerenciador/busca

description The requested resource is not available.

Apache Tomcat/8.0.41

Existe alguma configuração no arquivo web.xml ou em algum outro lugar que deva ser feita para que eu possa exibir a página?

10 respostas

boa tarde Patrick, altere urlPatterns={"/Busca"} para busca com b minúsculo por favor, tente ai e retorne se deu certo!!

Boa tarde Guilherme, Já utilizei assim também e não funcionou. Inclusive no código está comentado dessa forma.

//@WebServlet(urlPatterns="/busca") <<--- assim também não funciona

//@WebServlet(urlPatterns={"/busca"}) <<--- assim também não.

Na vídeo aula o instrutor comentou sobre o arquivo web.xml, contudo não fez nenhuma alteração no mesmo. Mas pesquisando na internet vi que são feitas algumas alterações mapeando as classes servlets. Quando eu faço o mapping de acordo com o que pesquisei fica assim:

<welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>busca</servlet-name>
        <servlet-class>br.com.alura.gerenciador.web.BuscaEmpresa</servlet-class>
    </servlet>
    <servlet-mapping>
         <servlet-name>busca</servlet-name>
         <url-pattern>/busca</url-pattern>
    </servlet-mapping>

E o erro muda, aparece esse:

HTTP Status 500 - Error instantiating servlet class br.com.alura.gerenciador.web.BuscaEmpresa

type Exception report

message Error instantiating servlet class br.com.alura.gerenciador.web.BuscaEmpresa

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Error instantiating servlet class br.com.alura.gerenciador.web.BuscaEmpresa

root cause

java.lang.ClassNotFoundException: br.com.alura.gerenciador.web.BuscaEmpresa

Da uma exception de class not found. Acredito que esteja faltando algum detalhezinho de configuração.

Estou com o mesmo erro, e também não sei o que fazer.

Se você acessar somente http://localhost:8080/gerenciador/ a pagina é exibida ?

Tenta deixar o seu web.xml da seguinte forma:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>gerenciador</display-name>


    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

to com esse msm problema....

Boa noite Poliana!

Fiz o import do projeto conforme o exercício e funcionou corretamente, precisei apenas alterar a JDK no build path para o Eclipse para de reclamar do erro de não encontrado.

Mas criei a Servlet e depois que eu parei e dei start novamente apareceu.

Experimenta fazer o mesmo.

Eu consegui fazendo a seguinte gambiarra: -Criei um projeto novo do tipo Dynamic Web Project com o mesmo nome gerenciador (ao invés de importar o projeto já existente como ele indica na aula) -Fui no workspace do projeto criado, apaguei tudo e colei dentro o conteúdo do projeto que baixei do site

Não sei pq, mas funcionou xD Ele estava reclamando do meu JRE System Library tbm...mas só removi e adicionei de novo.

Estranho! Talvez seja algum Facet ou outra configuração do Eclipse que tenha atrapalhado. Por isso sempre uso maven, nunca falha XD

Estou tento o mesmo problema.