No exercício 3 quando coloco o endereço na web http://localhost:8080/gerenciador/busca ee não acha o arquivo de busca, mas se estiver ate o gerenciador funciona normalmente. O que pode ser isso?
No exercício 3 quando coloco o endereço na web http://localhost:8080/gerenciador/busca ee não acha o arquivo de busca, mas se estiver ate o gerenciador funciona normalmente. O que pode ser isso?
Poste o seu codigo, por favor.
package br.com.alura.gerenciados.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 BuscaEmpresas extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter writer = resp.getWriter();
writer.println("<html>");
writer.println("<body>");
writer.println("Resultado da busca:<br/>");
writer.println("</body>");
writer.println("</html>");
}
}
Você tem que usar o @WebServlet(urlPatterns = "/busca") em cima da definição da classe. Ex:
@WebServlet(urlPatterns="/busca")
public class BuscaEmpresa extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String filtro = req.getParameter("filtro");
EmpresaDAO dao = new EmpresaDAO();
Collection<Empresa> empresas = dao.buscaPorSimilaridade(filtro);
PrintWriter writer = resp.getWriter();
writer.println("<html>");
writer.println("<body>");
writer.println("Resultado da busca:<br/>");
writer.println("<ul>");
for (Empresa empresa : empresas) {
writer.println("<li>" + empresa.getNome() + "</li>");
}
writer.println("</ul>");
writer.println("</body>");
writer.println("</html>");
}
}
Olá poste o erro para tentarmos identificar o problema.
Mas adiantando algo que eu desconfie Você disse que não encontra a pagina http://localhost:8080/gerenciador/busca ee
Tente colocar dessa forma http://localhost:8080/gerenciador/busca?filtro=ee
Em todo caso se não for esse o problema post aqui a mensagem de erro do browser e se possível a mensagem que está no console do eclipse.
Fernanda, você restartou o servidor ?
Era da funcionar verificou se o deploy foi feito corretamente ? Tente abrir a pasta raiz onde o tomcat está instalado vá em "SuaPastaRaizDoTomcat\webapps\gerenciador" procuro por seu servlet nas pastas filhas e veja se o código está atualizado.
O meu acontece a mesma coisa. Se eu abro o localhost:8080/gerenciador vai normalmente, mas se eu colocar o /busca na frente do gerenciador, não encontra. Já reiniciei o servidor e não consigo fazer funcionar.
Olá Vinicius, poste seu código, e se possível copie o resultado que aparece na página, por exemplo: Status 500, ou 404.
Assim vai ficar mais facil para nós ajudarmos vocês.
Abraço.
Reinicializa o servidor que vai funcionar. Aconteceu comigo também.
Isso ai, não fique com dúvidas;
Verifique o jre do servidor, o ideal é que esteja jdk1.7... a aplicação foi executada com java7 se seu servidor estiver com uma versão diferente não ira executar. Para verficar a JRE do servidor vc clica na aba Servers então irá aparecer o servidor, clique duas vezes e irá aparecer uma tela Overview, em General Information clique no link Runtime Environment.
Se estiver usando o eclipse na plataforma windows, no arquivo html em propriedades marque a opção read-only, isso pode resolver tbm!
Vá no build path de sua aplicação, deve ter 2 JREs ali. Exclua uma delas e deixe somente o 1.7 ou 1.8
Caro amigo o nome do seu pacote esta com o nome de gerenciados e nao (gerenciador )provavelmente você esta chamando o seu projeto errado na url; se não estiver chamando o nome do projeto errado veja se você incluiu ele no tomcat caso os itens acima estiverem certos tente remover o urlpatterns deixando so a busca no caso ficara @WebService("/busca")
Pra mim, ainda fica aparecendo a mensagem abaixo:
HTTP ERROR 404
Problem accessing /gerenciador/busca. Reason:
Not Found
Se eu acessar até /gerenciador/ aí da certo: Bem vindo ao nosso gerenciador de empresas!
Já tentei de várias coisas. Olhei as respostas dos outros colegas pra ver se me ajudava também, mas nada adiantou.
Segue o meu código:
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 {
PrintWriter writer = resp.getWriter();
writer.println("<html><body>");
writer.println("Resultado da busca:<br/>");
writer.println("</body></html>");
}
}
Parece algo com NO JSP Support for /gerenciador, mas não sei como solucionar. Também já removi e adicionei a JRE -> JRE System Library [jre1.8.0_51] , .... e nada.
Segue também os logs do console (no Restart):
Starting preview server on port 8080
Modules:
gerenciador (/gerenciador)
2015-10-01 01:12:15.933:INFO::main: Logging initialized @696ms
2015-10-01 01:12:16.259:INFO:oejs.Server:main: jetty-9.2.9.v20150224
2015-10-01 01:12:16.861:INFO:oejw.StandardDescriptorProcessor:main: NO JSP Support for /gerenciador, did not find org.eclipse.jetty.jsp.JettyJspServlet
2015-10-01 01:12:16.935:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@1a407d53{/gerenciador,file:/C:/Users/User/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/gerenciador/,AVAILABLE}{C:/Users/User/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/gerenciador}
2015-10-01 01:12:17.102:INFO:oejs.ServerConnector:main: Started ServerConnector@51081592{HTTP/1.1}{0.0.0.0:8080}
2015-10-01 01:12:17.104:INFO:oejs.Server:main: Started @1872ms
Alguém aí pode me dar um help? Valeu!
Jefferson,
Provavelmente está faltando um jar no seu build path. Para avaliar JSPs, o Jetty utiliza o Jasper um projeto da Apache. Veja se este jar está no seu build path:
apache-jasper.jar
Abraço!
Olá Joviane e colegas, perdão pela demora no retorno.
Deu certo.
No meu caso era alguma incompatibilidade com a versão do Tomcat. Eu tentei utilizar o
apache-tomcat-8.0.28 e ficava dando erro.
Eu troquei pelo apache-tomcat-7.0.65 e aí OK.
Obrigado pelas dicas!
Jeff