Sto usando Eclipse IDE e sto scrivendo un servlet. Il servlet deve accettare valori da un file html e restituire di conseguenza la risposta JSON.java.lang.NoClassDefFoundError: org/json/JSONObject
mio 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 ho eseguito questo servlet in Eclipse ottengo una finestra di dialogo di download.
Quando correre fuori Eclipse con Tomcat, ottengo errore:
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)
La linea Server1.doPost (Server1.java:25) si riferisce a
JSONObject json = new JSONObject();
Ho aggiunto l'org.json .jar al percorso di build e aggiunto al percorso di distribuzione in Properties->Configure build path->Deployment assembly
Speranza i link qui sotto aiuta http://stackoverflow.com/questions/14657585/java-lang-noclassdeffounderror-org-json-simple- parser-parseexception-with-eclip – sankar
È sufficiente verificare se la libreria (org.json.jar) è stata generata nella posizione di distribuzione. In base ai commenti, è stato aggiunto il jar richiesto nel classpath e nel gruppo di distribuzione. Dovrebbe essere generato nella posizione di distribuzione. È disponibile nella posizione di distribuzione? –
Fornisci maggiori dettagli su come esegui la tua applicazione in Tomcat.Ad esempio, se si esporta un WAR da Eclipse e lo si distribuisce manualmente in Tomcat, è necessario verificare se i JAR vengono esportati correttamente nella cartella/lib all'interno di WAR. – AJPerez