java.lang.NoClassDefFoundError: org / json / JSONObject

Eu estou usando o Eclipse IDE e estou escrevendo um servlet. O servlet deve aceitar valores de um arquivo html e retornar a resposta JSON de acordo.

Meu doPost () é:

protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { try { res.setContentType("application/json"); res.setHeader("Cache-Control", "nocache"); res.setCharacterEncoding("utf-8"); PrintWriter out = res.getWriter(); JSONObject json = new JSONObject(); String un=req.getParameter("uname"); String pw=req.getParameter("password"); if(un.equals("xxx") && pw.equals("xxx")) json.put("result", "success"); else json.put("result", "fail"); out.print(json.toString()); } catch(Exception e){System.out.print( e.getMessage());} } 

Quando executo esse servlet no Eclipse, recebo um diálogo de download de arquivo.

Quando executado fora do Eclipse com o Tomcat, recebo o erro:

 root cause java.lang.NoClassDefFoundError: org/json/JSONObject Server1.doPost(Server1.java:25) javax.servlet.http.HttpServlet.service(HttpServlet.java:647) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) root cause java.lang.ClassNotFoundException: org.json.JSONObject org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558) Server1.doPost(Server1.java:25) javax.servlet.http.HttpServlet.service(HttpServlet.java:647) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 

A linha Server1.doPost (Server1.java:25) refere-se a

 JSONObject json = new JSONObject(); 

Eu adicionei o org.json.jar ao caminho de construção, bem como o adicionei ao caminho de implantação em Properties->Configure build path->Deployment assembly

Não .. Não é o caminho certo. Consulte os passos

For Classpath reference: Clique com o botão direito no projeto em Eclipse -> Buildpath -> Configurar Caminho de Construção -> Caminho de Construção Java (painel esquerdo) -> Bibliotecas (Tab) -> Adicionar Jars Externos -> Selecione seu jar e selecione OK.

For Deployment Assembly: Clique com o botão direito do mouse em WAR no eclipse-> Buildpath -> Configurar Caminho de Construção -> Assembly de Implementação (painel esquerdo) -> Adicionar -> Sistema de arquivos externo -> Adicionar -> Selecione seu jar -> Adicionar -> Concluir.

Este é o caminho certo! Não esqueça de remover a variável de ambiente. Não é necessário agora.

Tente isso. Certamente vai funcionar. Tente usar o Maven, isso simplificará sua tarefa.

Por favor adicione a seguinte dependência http://mvnrepository.com/artifact/org.json/json/20080701

  org.json json 20080701  

A exceção diz tudo java.lang.ClassNotFoundException: org.json.JSONObject

Você não adicionou o arquivo jar necessário, que terá a class org.json.JSONObject ao seu classpath .

Você pode baixá-lo daqui

Adicione json jar ao seu classpath

ou use java -classpath json.jar ClassName

referir isto