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

Duvidas na classe java - Criação Servlet

1º passo Estou criando um formulário em html que está ok

<html>
  <body>
    <form action="adicionaContato">
      Nome: <input type="text" name="nome" /><br />
      E-mail: <input type="text" name="email" /><br />
      Endereço: <input type="text" name="endereco" /><br />
      Data Nascimento: <input type="text" name="dataNascimento" /><br />

      <input type="submit" value="Gravar" />
    </form>
  </body>
</html>

2º passo Na hora de criar a classe está gerando um erro na linha - Contato contato = new Contato(); - o eclipse pede para criar uma nova classe para esse objeto.

public class AdicionaContatoServlet extends HttpServlet {
    protected void service(HttpServletRequest request,
            HttpServletResponse response)
            throws IOException, ServletException {

        PrintWriter out = response.getWriter();

        // pegando os parâmetros do request
        String nome = request.getParameter("nome");
        String endereco = request.getParameter("endereco");
        String email = request.getParameter("email");
        String dataEmTexto = request.getParameter("dataNascimento");
        Calendar dataNascimento = null;

        // fazendo a conversão da data
        try {
            Date date = new SimpleDateFormat("dd/MM/yyyy")
                    .parse(dataEmTexto);
            dataNascimento = Calendar.getInstance();
            dataNascimento.setTime(date);
        } catch (ParseException e) {
            out.println("Erro de conversão da data");
            return; //para a execução do método
        }

        // monta um objeto contato
        Contato contato = new Contato();
        contato.setNome(nome);
        contato.setEndereco(endereco);
        contato.setEmail(email);
        contato.setDataNascimento(dataNascimento);



        // imprime o nome do contato que foi adicionado
        out.println("<html>");
        out.println("<body>");
        out.println("Contato " + contato.getNome() + 
                " adicionado com sucesso");    
        out.println("</body>");
        out.println("</html>");
    }
}

Esse exercicio tambem pode ser encontrado no site: http://www.caelum.com.br/apostila-java-web/servlets/

15 respostas

Olá Jonathan, tudo bem ?

Você pode postar pra gente o erro que foi impresso pelo console?

Forte abraço!

No editor do eclipse não deixa criar o objeto.

Contato contato = new Contato();

dá erro na linha no objeto Contato.

Mas se mesmo assim tentar rodar aparece o erro no browser

root cause

java.lang.Error: Unresolved compilation problems: Contato cannot be resolved to a type Contato cannot be resolved to a type

Aula02.Adicionacontato.service(Adicionacontato.java:44) javax.servlet.http.HttpServlet.service(HttpServlet.java:727) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Jonathan, esta classe está dentro do mesmo pacote? Se não estiver, você deve importa-lo.

Como disse o Sandro, sua classe Contato está no mesmo pacote da sua classe AdicionaContatoServlet ? Caso não esteja, você vai precisar importa-la na classe AdicionaContatoServlet.

import pacote.Contato;
public class AdicionaContatoServlet {

Beleza? Abraços.

Esse objeto está dentro da classe AdicionaContatoServlet.

Por isso não importei.

A estrutura do código está como mostra no 1º tópico.

Eu tentei criar uma classe fora chamado de Contato e importar mais mesmo assim o erro de linha vermelha persiste nesse objeto.

Coloque a mensagem que aparece na aba Problems do Eclipse, está meio estranho isso aí.

No console Problems aparece

DescriptionContato cannot be resolved to a type

Resource Adicionacontato.java

Path /Aula02/src/Aula02

Location line 49

Type Java Problem

Contato cannot be resolved to a type Adicionacontato.java /Aula02/src/Aula02 line 49 Java Problem

Estava modificando aqui o código para tentar solucionar e quando fui rodar a aplicação está aparecendo a mensagem agora de aviso.

Server Tomcat v7.0 Server at localhost failed to start.

Já tentei reiniciar a maquina e ainda permanece o problema

verifique se existe um arquivo chamado .snap localizado na pasta .metadata.plugins\org.eclipse.core.resources do diretório da workspace e delete ele. Isso deve resolver.

Além desse erro citado mais acima, o Eclipse aponta algum outro erro ou aviso? Coloque o código completo da classe contato que você está usando, com os includes e tudo. O que parece que está ocorrendo é que o Eclipse não está tendo acesso a classe. Tente dar um Clean no projeto e recompilar. É o que eu faço no Visual Studio .NET quando ele faz gracinhas; como as tecnologias são semelhantes, pode ser que resolva.

Pessoal alguem conseguiu realizar essa atividade desse exercicio ?

Se possivel pode enviar o projeto para o meu email e estudar, pois estou tentando e não consigo solucionar esses erros que aparecem desse projeto e certificar se é de configuração ou programação.

meu email é ti_jonathan@hotmail.com - jonathan.barros@am.senai.br

grato a todos

solução!

Jonathan, vamos fazer o seguinte, mande o seu código fonte da forma está para o meu e-mail slvaldo@ig.com.br, pois será mais fácil para ver onde você pode estar errando (não que eu entenda muito, mas duas cabeças pensando é melhor que uma, né?). Pela minha experiência em programação em outras linguagens, os erros em que a gente perde mais tempo são aqueles erros mais bobos, naqueles conceitos que a gente acha que nunca iria errar (já caí nessa muitas vezes nesses 20 anos de programação...). Abraço, Sandro

Caros amigos, muito obrigado pelo suporte disponibilizado, desinstalei o tomcat e configurei a pasta. depois criei uma classe separa para chamar o objeto instanciado utilizando os metodos get e set.

Fico muito grato pela atenção abraços.