【发布时间】:2015-02-14 18:09:59
【问题描述】:
我正在使用 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 中的部署路径中
【问题讨论】:
-
希望以下链接能帮助到stackoverflow.com/questions/14657585/…
-
只检查你的库(org.json.jar)是否在部署位置生成。根据您的 cmets,您已在类路径和部署程序集中添加了所需的 jar,因此它应该在部署位置生成。它在部署位置可用吗?
-
请提供有关如何在 Tomcat 中运行应用程序的更多详细信息。例如,如果您从 Eclipse 导出 WAR 并在 Tomcat 中手动部署,则应检查 JAR 是否正确导出到 WAR 中的 /lib 文件夹。
-
@sankar 我已经参考了您建议的链接并添加了部署路径,但这并没有解决我的问题
-
@JayaAnanthram 我检查了部署位置n它在那里可用