java.lang.NoClassDefFoundError:带有eclipse和spring的org / json / simple / parser / ParseException

时间:2013-02-02 01:13:52

标签: java eclipse json spring

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

这有一个私有构造函数(因为我需要用字符串或实际数据来调用它)。所以我有两个返回对象实例的方法。你可以告诉我,我知道一些Java。

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

所以我知道以下事实 -

  1. 解析静态字符串工作并完美解码
  2. 如果我提供文件,则会正确加载和解码。
  3. 现在问题:

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

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

    org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is 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控制器中的导入是

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

    他们是一种改变构建顺序的方法,并且会修复它吗?

9 个答案:

答案 0 :(得分:7)

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

希望这有帮助!

答案 1 :(得分:4)

  1. 在构建路径中添加json-simple-1.1.1.jar文件。在Eclipse上,右键单击project->构建路径 - >配置构建路径 - > java构建路径 - >添加外部罐子 - >选择jar文件。

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

答案 2 :(得分:0)

你错过了一个jar部署。

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

答案 3 :(得分:0)

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

下载此jar

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

如果你在春天制作AI,就像我遇到这个错误一样:

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

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

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

答案 7 :(得分:0)

使用以下Java库处理JSONArray和JSONObject

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

答案 8 :(得分:-5)

我给你的建议;它应该是

    public static void main(String[] args) {
    ...
    }

而不是

    public static void main(String args[]) {
    ...
    }