我正在使用Eclipse IDE并正在编写一个servlet。 servlet应接受来自html文件的值并相应地返回JSON响应。
我的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());}
}
当我在Eclipse中运行这个servlet时,我得到一个文件下载对话框。
当使用Tomcat在Eclipse外部运行时,我收到错误:
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)
Server1.doPost(Server1.java:25)行引用
JSONObject json = new JSONObject();
我已将org.json.jar添加到构建路径,并将其添加到Properties->Configure build path->Deployment assembly
答案 0 :(得分:26)
否..这不是正确的方法。请参阅步骤
For Classpath reference:
右键单击Eclipse中的项目 - > Buildpath - >配置构建路径 - > Java构建路径(左窗格) - >图书馆(标签) - >添加外部罐子 - >选择你的罐子,然后选择确定。
For Deployment Assembly:
在eclipse中右键单击WAR-> Buildpath - >配置构建路径 - >部署组件(左窗格) - >添加 - >外部文件系统 - >添加 - >选择你的罐子 - >添加 - >完成。
这是正确的方法!不要忘记删除环境变量。现在不需要。
试试这个。当然它会奏效。尝试使用Maven,它将简化您的任务。
答案 1 :(得分:19)
请添加以下依赖项 http://mvnrepository.com/artifact/org.json/json/20080701
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20080701</version>
</dependency>
答案 2 :(得分:1)
它自己的例外情况java.lang.ClassNotFoundException: org.json.JSONObject
您尚未向org.json.JSONObject
添加必要的jar文件,该文件将包含classpath
课程。
答案 3 :(得分:-1)