Erro usando JSON

5 respostas
diegowebby

Pessoal estou tentando rodar um exemplo de um servlet gerando um documento JSON.
Segue o código abaixo.

public class JSONServlet extends  HttpServlet{
  public void doGet(HttpServletRequest request,HttpServletResponse response)
   throws ServletException,IOException{
   JSONArray arrayObj=new JSONArray();
   arrayObj.add("MCA");
   arrayObj.add("Amit Kumar");
   arrayObj.add("19-12-1986");
   arrayObj.add(24);
   arrayObj.add("Scored");
   arrayObj.add(new Double(66.67));
    PrintWriter out = response.getWriter();
    out.println(arrayObj);
    for(int i=0;i<arrayObj.size();i++){
      out.println(arrayObj.getString(i));
    }
  }
}

Adiciono as libs necessárias…
Nenhum erro ocorre em tempo de compilação.
Quando eu rodo o código obtenho o seguinte erro…

java.lang.NoClassDefFoundError: net/sf/json/JSONArray

Alguém já passou por este problema?

5 Respostas

L

Existem duas hipóteses:

  1. Você adicionou as dependências para compilar, não para a execução dentro do servidor. Se você estiver rodando dentro do Eclipse, certifique que as bibliotecas estão exportadas. Clique com o botão direito no nome do projeto; vá em Properties; selecione o ítem Java EE Module Dependencies. Marque as bibliotecas que o JSON depende.

  2. Essa dependência, por ser invocada via reflection, só aparece no momento da execução. Nesses casos, é útil usar o site FindJAR para descobrir qual a biblioteca você precisa. Digite a classe faltante (no caso: net.sf.json.JSONArray) e verifique se você possui um dos JARs listado no resulto de busca.

diegowebby

Oi Leonardo fiz o que você sugeriu e mesmo assim não rodou…
Criei um projeto desktop e coloquei o código e rodou sem problemas sem nem precisar fazer o que você disse.
Mas, estou precisando rodar dentro de um servlet :(…

L

diegowebby:
Oi Leonardo fiz o que você sugeriu e mesmo assim não rodou…
Criei um projeto desktop e coloquei o código e rodou sem problemas sem nem precisar fazer o que você disse.
Mas, estou precisando rodar dentro de um servlet :(…

É algum erro na hora de deploy, o Eclipse não está colocando dentro da pasta WEB-INF/lib.

brucsantos

Só completando eu também já tive problemas parecidos e seleciono em “Java Build Path” na aba “Order and Export” eu seleciono o jar ou o Webb app libraries ou seja onde estiver seu jar.

Espero ter ajudado.

diegowebby

Era como o Leonardo falou, o eclipse não estava colocando as libs no diretório web-inf/lib

Criado 24 de maio de 2010
Ultima resposta 24 de mai. de 2010
Respostas 5
Participantes 3