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

Dúvida no Ex. 3 da Aula 1 - Servlet API e fundamentos da Web

Pessoal, o meu está me retornando erro 404. Já reiniciei o servidor, testei na visualização do Eclipse, mudei a rota e nada....

Segue o meu busca empresa

package br.com.alura.gerenciador.web;

import java.io.IOException;
import java.io.PrintWriter;

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 (urlPatterns = "/busca")
public class BuscaEmpresa extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
        PrintWriter writer = resp.getWriter();
        writer.println("<html><body>");
        writer.println("Resultado da busca");
        writer.println("</body></html>");
    }
}

Alguém poderia me ajudar? Grato ;)

27 respostas

Naldson, certifique-se de que não tem nada mapeando essa servlet no seu web.xml, e que o .class (bytecode) compilado dela esteja dentro de WEB-INF\classes, pois seu código aparentemente está correto

Ele passou a me retornar isso agora:

HTTP Status 405 - HTTP method GET is not supported by this URL

tiraessa linha - super.doGet(req, resp);

Você está chamando direto do navegador certo? pois se for de um formulario, certifique-se de que nao está com method=post

Eu tirei a linha... Permanece a mesma coisa.... E não é de um formulário...

Não sei se isso tem algo a ver, mas no nome da minha classe tem isso: The serializable class BuscaEmpresa does not declare a static final serialVersionUID field of type long

coloca aqui o log que retornou com o erro, mais facil de analisar

Seria isso? http://i.imgur.com/8172gv2.png

O de cima estava estando o outro projeto Na verdade esse.

HTTP Status 405 - HTTP method GET is not supported by this URL

type Status report

message HTTP method GET is not supported by this URL

description The specified HTTP method is not allowed for the requested resource.

Apache Tomcat/7.0.67

Oi Naldson, tudo bem?

Seu método sem o super.doGet(...) ficou assim?

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

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

Abraços!

Tente acessar diretamente a servlet, "/busca". Mostre o conteúdo da sua página index.jsp para vermos se tem algum formulário nele.

Sim, Leonardo!

Aqui está , Guilherme!

<html>
<body>
Bem vindo ao nosso gerenciador de empresas!<br/>
</body>
</html>

tente acessar diretamente a servlet "localhost:8080/gerenciador/busca"

É assim mesmo que eu estou fazendo, Guilherme...

Blz,

Então vamos testar com o método POST, troca a assinatura do método doGet para doPost

Pois é.... Eu já tinha feito isso ontem. Mas ele continua me retornando:

HTTP Status 405 - HTTP method GET is not supported by this URL

type Status report

message HTTP method GET is not supported by this URL

description The specified HTTP method is not allowed for the requested resource.

Apache Tomcat/7.0.67

Certo,

no arquivo web.xml está tudo certo ? Não tem nenhum outro arquivo index.html solto com algum formulário?

Só tem 1

<html>
<body>
Bem vindo ao nosso gerenciador de empresas!<br/>
</body>
</html>

O projeto está do jeito que eu baixei... Exceto pela classe BuscaEmpresa que eu criei

Deixa a assinatura do metódo com doPost

E no arquivo index coloca esse trecho de código abaixo da mensagem de bem vindo

<form action="busca" method="POST">
    <input type="hidden" name="teste" />
</form>

Tentei, troquei o method do form e o método para get e deu na mesma....

Você já fez esse curso aê? Deu tudo certo?

Sim já finalizei esse curso deu tudo certo. Mistérios da programação cara.

Quando vc acessa na barra de endereço localhost:8080/gerencidor/busca ele mantem esse endereço ou o /busca some?

Mantém

solução!

então a requst é mesmo get, o container deve estar se perdendo para batr na servlet certa.

Faz assim, deleta o .jav e o .class

cria uma nova classe com url-patter para /busca , compila e coloca novamente em WEB-INF/class, acredito que irá funiconar

Olá!

Poderia me dizer onde fica o diretório do .jav e do .class?

Claro, dentro da pasta workspace (não pelo eclipse, mas pelos diretorios de pastas do S.O. mesmo) entra no seu projeto, lá tem a pasta src onde ficam os fontes( .java) e a pasta classes dentro de WEB-INF, onde ficam os bytecodes (.class)

Deu certinho, cara.. Muito obrigado! :)

Mas seria isso erro aqui, ou já veio no projeto que eu baixei?