Erros com Servlet

Pessoal,

Estou seguindo o Livro Java para WEB com Servlets JSP e EJB, nele contem o exemplo servlet logo abaixo.
O servelet acusa os seguintes erros:

a linha 28 retorna : Syntax error on token “}”, { expected
a linha 29 retorna:
Multiple markers at this line

  • servletContext cannot be resolved
  • Enumeration is a raw type. References to generic type Enumeration should be
    parameterized

a linha 33 retorna: servletContext cannot be resolved

a ultima linha Multiple markers at this line
- Syntax error, insert “}” to complete Block
- Syntax error, insert “}” to complete
ClassBody

É sugerido 29 para criar um campo, classe, constant, mas nao quis aderir a essas sugestoes

Como solucionar esses erros ?

package br.book.cap2;

/*
 Esse servlet recupera os atributos os pares nome/valor, do objeto ServletContext.
 O metodo init preserva o objeto ServletConfig dentro servletConfig. O metodo serviço,
 usa a Interface do ServletConfig, usando o metodo getServletContext para obter o objeto
 ServletContext. Depois de criar o objeto ServletContext voce pode usar metodo getAttributeNames,
 para conseguir uma enumeração de todos os atributos, e criar um loop para exibir cada atributo. 
 */

1)import javax.servlet.*;
2)import java.io.IOException;
3)import java.util.Enumeration;
4)public class DisplayAttributesServlet implements Servlet {
5)   ServletConfig servletConfig;
6)   public void init(ServletConfig config) throws ServletException {
7)     servletConfig = config;
8)}
9)   public void destroy() {
10)  }
11)   public void service(ServletRequest request, ServletResponse response)
12)     throws ServletException, IOException {
13)     ServletContext servletContext = servletConfig.getServletContext();
14)    Enumeration attributes = servletContext.getAttributeNames();
15)     while (attributes.hasMoreElements()) {
16)       String attribute = (String) attributes.nextElement();
17)       System.out.println("Attribute name : " + attribute);
18)       System.out.println("Attribute value : " +
19)         servletContext.getAttribute(attribute));
20)     }
21)   }
22)   public String getServletInfo() {
23)     return null;
24)   }
25)   public ServletConfig getServletConfig() {
26)     return null;
27)   }
28)}  
29) Enumeration attributes = servletContext.getAttributeNames();
30)   while (attributes.hasMoreElements()) {
31)    String attribute = (String) attributes.nextElement();
32)  System.out.println("Attribute name : " + attribute);
33)     System.out.println("Attribute value : " + servletContext.getAttribute(attribute));
34)}

Att,

Rodrigo Faria

oi,

parece que tem um fecha chave a mais depois do método getServletConfig()

abs

como o compilador disse, muda a linha 28 de } para {.

Fiz as modificações necessárias solicitadas, agora existe erros no ultimo código:

 Enumeration attributes = servletContext.getAttributeNames();{
  while (attributes.hasMoreElements()) {
     String attribute = (String) attributes.nextElement();
     System.out.println("Attribute name : " + attribute);
     System.out.println("Attribute value : " + servletContext.getAttribute(attribute));
      }
    }

A linha 5 mostra o erro:

  • servletContext cannot be resolved

A linha 1 mostra o erro:
Multiple markers at this line
- Enumeration is a raw type. References to generic type Enumeration should be parameterized
- servletContext cannot be resolved

As mensagens reclamam do objeto servletContext, apesar de ele ter sido estanciado.

O que esta faltando ?

Att,

Rodrigo Faria

todo o bloco:

29) Enumeration attributes = servletContext.getAttributeNames();

30) while (attributes.hasMoreElements()) {

31) String attribute = (String) attributes.nextElement();

32) System.out.println("Attribute name : " + attribute);

33) System.out.println("Attribute value : " + servletContext.getAttribute(attribute));

ficou fora de um metodo…!!

recorte ele e cole no lugar correto