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

Erro com o throws

Boa Noite a todos, por favor gostaria de alguma ajuda, estou "apanhando" para a primeira parte de servlet, o que acontece é o seguinte: Após configurar o tomcat 7.0, importar o projeto e arrumar a JRE System Library em "Build Path", meu projeto gerenciador continua dando erro, mas dessa vez no throws, segue o código:

package br.com.alura.gereciador.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 escritor = resp.getWriter(); 
             escritor.println("<html>");
             escritor.println("<body>");
             escritor.println("Resultado da busca<br/>:");
             escritor.println("</body>");
             escritor.println("</html>");
         }
    }
}

segue a stack trace:

type Exception report

message Servlet execution threw an exception

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

exception

javax.servlet.ServletException: Servlet execution threw an exception
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.Error: Unresolved compilation problems: 
    Syntax error on token "throws", < expected
    Syntax error on token(s), misplaced construct(s)

    br.com.alura.gereciador.web.BuscaEmpresa.doGet(BuscaEmpresa.java:17)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.79 logs.

OBS: Estou usando a porta 8086 no Tomcat, pois a porta 8080 está ocupada em meu pc pelo Oracle XE.

Grato desde já!

2 respostas
solução!

E aí, Tiagão! Tranquilo? =D

Me parece que o erro está na sobrescrita do método doGet()... Você fez assim:

protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
  throws ServletException, IOException {
    // Restante do código...
  }
}

Repare que você abre o método e, dentro dele, você está escrevendo a declaração do throws... =|

O correto deveria ser:

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  // Restante do código...
}

Sacou a diferença? É sutil, mas é apenas um { que você colocou a mais. =)

Espero ter ajudado, mas qualquer dúvida que você possa ter ainda, não hesite em perguntar, beleza?

Abraços e bons estudos,

Fábio

Que erro grotesco! kkkkk Eu copiei errado o que o professor passou na vídeo aula e ainda pensei "esse throws aqui dentro do método ta estranho" e nem me atentei que ele estava no lugar correto, acho que foi pela quebra de linha que me confundiu. Enfim, muuuuito Obrigado Fábio, qualquer outra dúvida perguntarei sim. Tenha uma Boa Noite! :D