当前位置: 首页 > 面试题库 >

java.lang.NoClassDefFoundError:org / json / JSONObject

施文彬
2023-03-14
问题内容

我正在使用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->Deploymentassembly


问题答案:

不。这不是正确的方法。 请参阅步骤,

For Classpath reference: 右键单击Eclipse中的项目-> Buildpath->配置构建路径->
Java构建路径(左窗格)-> Libraries(Tab)->添加外部Jars->选择您的jar并选择OK。

For Deployment Assembly:
右键单击Eclipse中的WAR->构建路径->配置构建路径->部署程序集(左窗格)->添加->外部文件系统->添加->选择jar->添加->完成。

这是正确的方法!不要忘记删除环境变量。现在不需要。

试试这个。当然可以。尝试使用Maven,它将简化您的任务。



 类似资料:
  • 问题内容: 我有一个名为XMLtoXML.java的类,这是它的方法之一… 代码块的最后一行使用dom4j Document.i在我的类路径中有dom4j-full.jar。 如果我以独立形式运行此类(在eclipse中以Java应用程序运行),那么它将正常工作。当我将该类作为Web应用程序的一部分和dom4j-full.jar添加到我的类路径中时。 我得到以下例外。 我也确信dom4j jar存

  • 问题内容: 我正在通过main在eclipse中执行一个类,结果我收到此错误 我正在使用jRE6。 请帮我解决这个问题 问题答案: 确保在构建路径上。 http://mirrors.ibiblio.org/pub/mirrors/maven2/xalan/xalan/2.7.1/xalan-2.7.1.jar

  • 问题内容: 我总是遇到以下错误。有人可以帮我吗? 当我编译以下代码时。我已经在网上搜索了,但没有找到解决方案。添加saveToCassandra时出现错误。 我的pom是以下内容。 问题答案: org.apache.spark.Logging在Spark版本1.5.2或更低版本中可用。它不在2.0.0中。请更改版本如下

  • 问题内容: 我正在尝试在Tomcat中进行部署时在Eclipse中使用Hibernate进行初始设置。 我遇到以下问题: 我已经在线浏览了我的问题,并且我知道这与项目类路径有关。 我已在我的项目中添加了一个用户库,其中包含hibernate下载中“必需”目录下的所有jars,但这似乎不起作用。 请在这里找到我的项目的屏幕截图: 问题答案: 您收到错误消息是因为hibernate库对Tomcat不可

  • 问题内容: 我正在使用spring进行一些测试,但出现此错误: 我安装的JAR是:spring-test-2.5.6.jar 除此之外,我还需要另一个罐子吗? 谢谢 问题答案: 您还需要通过查看包装,通常可以告诉您缺少了哪些罐子。在此org.springframework.core。*都在核心jar文件中。

  • 问题内容: 我正在尝试使用Spring Boot编写一个简单的RESTful服务。但是,有一条错误消息我无法解决。我一直在研究,看来这是SpringBoot版本之间的冲突,但是我不确定如何摆脱它。 我有这个SpringBootApp: 与此pom.xml相关联: 对我来说看起来不错,但出现此错误: 问题答案: 转到Spring boot Initialzr站点,然后选择Web stack作为依赖项