原因:java.lang.NoClassDefFoundError:com/fasterxml/jackson/databind/JsonMappingException$Reference

原因:java.lang.NoClassDefFoundError:com/fasterxml/jackson/databind/JsonMappingException$Reference,java,jackson,Java,Jackson,我对Java完全陌生。我试图显示JSON数据,为此我决定使用Jackson库。但是我得到了错误 我正在使用 jackson-annotations-2.3.0.jar jackson-core-2.4.2.jar jackson-databind-2.4.2.jar 这是我的对象,其中有一个依赖项“tnStudentLocLog” 用户控制器类: @Controller @RequestMapping(value="/students") public class StudentContro

我对Java完全陌生。我试图显示JSON数据,为此我决定使用Jackson库。但是我得到了错误

我正在使用

jackson-annotations-2.3.0.jar
jackson-core-2.4.2.jar
jackson-databind-2.4.2.jar
这是我的对象,其中有一个依赖项“tnStudentLocLog”

用户控制器类:

 @Controller
@RequestMapping(value="/students")
public class StudentController {


    private static Logger logger = Logger.getLogger( StudentController.class);


    private StudentManagerDelegate studentDelegate;  


    public StudentController() throws Exception
    {
        studentDelegate= new StudentManagerDelegate(ServiceType.LOCAL);
    }
    /********* GET ALL STUDENTS  ************/
    @RequestMapping(method=RequestMethod.GET)
    @ResponseStatus(HttpStatus.OK)
    public @ResponseBody SuccessResponse<List<Student>> getAllStudents() throws Exception {
        Map<String,List<Student>> studentsMap = new HashMap<String,List<Student>>();
        SuccessResponse<List<Student>> resp = new SuccessResponse<List<Student>>();
        resp.list = studentDelegate.load();
        return resp;
    }
但是,在URL中输入“/students/4”时。它显示正确。 我不知道到底发生了什么。我看到很多帖子,它们正在改变Jackson core的版本,注释。但是,这在我的情况下是行不通的


提前感谢您的帮助。

欢迎使用java。在使用Java时,首先需要学习的是如何设置和使用类路径。“找不到类”错误意味着一个或多个jar文件不在类路径中。Java不会隐式地查找.jar文件的任何地方(甚至不是类所在的子目录)。你必须告诉它去哪里找。如何设置类路径?这取决于您的平台(Windows、Linux、IIS、Apache、Tomcat、Bluejay、Eclipse等)。好好学习,您将避免许多头痛。

您缺少一个jar文件,其中包含所需的类,即
com.fasterxml.jackson.databind.JsonMappingException


您可以在类路径中添加和包含。

检查您是否有任何循环依赖项,如果您有循环依赖项,您可以通过@JsonIgnore忽略它。

谢谢,我正在使用Linux。我已经包括了所有的.jar文件。我还有一个类,它工作正常,可以获取JSON数据。但是,对于约会类,它正在循环第一个ID=0。我认为它是循环的,因为对象(tnPatientLocLog)中的因变量仍然不起作用..您现在面临什么问题?实际上,有一个与另一个表“tnPatientLocLog”的映射。由于它正在循环JSON数据,这意味着您的
NoClassDefFoundError
问题已经解决。所以你可以接受这个答案,如果你在这方面需要帮助的话,用你的代码发布一个新的问题。这是我的问题。谢谢。这也是我的问题!非常好的捕捉,因为这完全是非直觉的。
 @Controller
@RequestMapping(value="/students")
public class StudentController {


    private static Logger logger = Logger.getLogger( StudentController.class);


    private StudentManagerDelegate studentDelegate;  


    public StudentController() throws Exception
    {
        studentDelegate= new StudentManagerDelegate(ServiceType.LOCAL);
    }
    /********* GET ALL STUDENTS  ************/
    @RequestMapping(method=RequestMethod.GET)
    @ResponseStatus(HttpStatus.OK)
    public @ResponseBody SuccessResponse<List<Student>> getAllStudents() throws Exception {
        Map<String,List<Student>> studentsMap = new HashMap<String,List<Student>>();
        SuccessResponse<List<Student>> resp = new SuccessResponse<List<Student>>();
        resp.list = studentDelegate.load();
        return resp;
    }
     {"max":"30","list":[{"studentId":2,"date":1339327730000,"startTime":1339327806000,"endtime":1339329470000,"room":0,"tnStudentLocLog":
[{"id":"studentId":2,"inTime":1339327872000},"sequenceId":2,"outTime":1339327967000,"Student":{"studentId":2,"date":1339327730000,"startTime":1339327806000,"endtime":1339329470000,"tnStudentLocLog":[{"id":{"studentId":2,"room":10,"inTime":1339327872000},"sequenceId":2,"outTime":1339327967000,"Student":{"studentId":2,"date":1339327730000,"startTime":1339327806000,"endtime":1339329470000,"tnStudentLocLog":[{"id":.......