【问题标题】:java.lang.NoClassDefFoundError: org/json/simple/parser/ParseException with eclipse and springjava.lang.NoClassDefFoundError: org/json/simple/parser/ParseException 与 eclipse 和 spring
【发布时间】:2013-01-17 10:21:31
【问题描述】:

我有一个简单的 XML 文件,已解析为 JSON。一切都很好,花花公子,我有一个独立的 Java 类(即它有一个 public static void main (String args[])....

这有一个私有构造函数(因为我需要用字符串来调用它一个文件名或实际数据)。所以我有两个方法可以返回对象的一个​​实例。如您所知,我对 Java 略知一二。

好的。当我在 Eclipse 中运行运行 main 方法的代码时,我的文件会根据需要加载和解码。它也适用于我通过 JUnit 运行的原始字符串。

所以我知道以下事实-

  1. 静态字符串的解析工作和解码完美
  2. 如果我提供一个文件,它会被正确加载和解码。

现在的问题:

只要我在 Spring 框架中运行它,我就可以将我通过独立代码运行的整个文件内容写入标准。

但在它可以运行任何东西之前,我收到以下错误 -

org.springframework.web.util.NestedServletException:处理程序处理失败;嵌套异常是 java.lang.NoClassDefFoundError: org/json/simple/parser/ParseException org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:920) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

独立代码在 Eclipse 中运行,Spring 使用 Tomcat 7 指向该代码运行。

为什么没有正确找到 ParsException?

调用 Spring 控制器中的导入是

导入 java.io.FileNotFoundException; 导入 java.io.FileReader; 导入 java.io.IOException; 导入 java.util.ArrayList; 导入 org.apache.commons.lang.StringUtils; 导入 org.json.simple.JSONArray; 导入 org.json.simple.JSONObject; 导入 org.json.simple.parser.JSONParser;

他们是改变构建顺序的一种方式吗?那会解决它吗?

【问题讨论】:

    标签: java eclipse json spring


    【解决方案1】:

    看起来您错过了在类路径中包含 json-simple-.jar。包括相同的,它应该得到解决。

    希望这会有所帮助!

    【讨论】:

    • 我已将这个添加到 Eclipse 构建的 jar 列表中,它没有任何区别
    • 你在哪里添加的?它在 WEB-INF 中吗?你能检查一下Tomcat中部署的工件是否仍然包含这个jar吗?
    • json-simple-1.1.1.jar 添加了这个 json 文件,它可以工作
    • 使用这个依赖来解决这个问题。 stackoverflow.com/questions/14657585/…
    【解决方案2】:
    1. 在您的构建路径中添加json-simple-1.1.1.jar 文件。在Eclipse上,右键单击项目->构建路径->配置构建路径-> java构建路径->添加外部jar->选择jar文件。

    2. 将构建路径条目添加到部署程序集中。在同一属性窗口中,选择“部署程序集”选项。然后添加“Java Build Path”条目。这应该会显示您刚刚在第一步中创建的构建路径条目。

    【讨论】:

      【解决方案3】:

      您缺少 jar 部署。

      它与Tomcat7有关。需要导出几个 jar(忘记了哪些),其他 Web 服务器不需要,但 Tomcat。

      【讨论】:

        【解决方案4】:

        您能否将这个 jar json-simple-1.1.1.jar 添加到您的类路径中并尝试一下? 这个jar可以在http://code.google.com/p/json-simple/downloads/detail?name=json-simple-1.1.1.jar下载

        【讨论】:

        • 我从 Eclipse 项目中删除了所有 jar 文件,并一一插入,包括这个,但在 tomcat/spring 中运行时仍然出现错误,但 main/juint 测试仍然有效。
        【解决方案5】:

        我最终使用的解决方案是更改为 sourceforge.net json 解析器,进行了一些代码调整,我的 JUnit 测试仍然有效,Tomcat 没有抱怨。这可能不是最好的解决方案,但它确实有效。

        import net.sf.json.JSONArray;
        import net.sf.json.JSONObject;
        import net.sf.json.JSONSerializer;
        

        【讨论】:

          【解决方案6】:

          我遇到了类似的错误,花了 3 4 个小时来删除和添加新的 jar 文件。我的问题是我直接从下载位置添加了 jar 文件,即 ZIP 文件..!!!添加正确提取的 jar 文件后,我的问题似乎得到了解决。希望这对某人有帮助..!!

          【讨论】:

            【解决方案7】:

            如果你在 Spring 中制作 AI,就像我遇到此错误时一样:

            还需要将 Jar 添加到您的 AI“jlib”文件夹,例如“...\AI\Skirmish\MyAI\0.1\jlib”。

            在 Eclipse 或 Netbeans 中添加它并构建项目是不够的。春天也该有罐子了。

            我知道这是一个迟到的答案,但可以帮助其他有同样错误的人。

            【讨论】:

              【解决方案8】:

              使用下面的 java 库处理 JSONArray 和 JSONObject

              <dependency>
                  <groupId>org.json</groupId>
                  <artifactId>json</artifactId>
                  <version>20200518</version>
              </dependency>
              

              【讨论】:

                【解决方案9】:

                只需在 pom.xml 中添加 JSON simple 的 maven 依赖项。无需配置任何类路径。

                <dependency>
                    <groupId>com.googlecode.json-simple</groupId>
                    <artifactId>json-simple</artifactId>
                    <version>1.1.1</version>
                </dependency>
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-06-22
                  • 1970-01-01
                  • 2013-01-04
                  • 2016-04-18
                  • 1970-01-01
                  相关资源
                  最近更新 更多