NoClassDefFoundError JsonAutoDetect при анализе объекта JSON

Я разрабатываю веб-приложение с использованием облачных сервисов Amazon, и мне нужно использовать объекты JSON. Как настроен мой проект, у меня есть HTML-форма, в которой пользователь будет заполнять свою информацию и отправлять. После отправки данные будут помещены в онлайн-базу данных, и им будет отправлено электронное письмо с подтверждением. Прежде чем я смогу отправить данные в базу данных, мне нужно поместить все это в объект JSON. Мой сервлет, выполненный на Java, выглядит так:

public class FormHandling extends HttpServlet {
    //doGet function
    public void doGet (HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        // In this part of the code I take in the user data and build an HTML
        // page and return it to the user

        // Create String Mapping for User Data object
        Map<String,Object> userData = new HashMap<String,Object>();

        // Map the names into one struct. In the code below we are creating 
        // values for the nameStruct from the information the user has
        // submitted on the form.
        Map<String,String> nameStruct = new HashMap<String,String>();
        nameStruct.put("fName", request.getParameter("fname"));
        nameStruct.put("lName", request.getParameter("lname"));
        nameStruct.put("mInit", request.getParameter("minit"));

        // Map the three email's together (providing there are 3).
        // This is the same logic as the names.
        Map<String,String> emailStruct = new HashMap<String,String>();
        emailStruct.put("email", request.getParameter("email1"));
        emailStruct.put("email", request.getParameter("email2"));
        emailStruct.put("email", request.getParameter("email3"));

        // Put Name Hash Value Pair inside User Data Object
        userData.put("name", nameStruct);
        userData.put("emails", emailStruct);
        userData.put("age", 22);

        // Create the Json data from the userData
        createJson(userData);

        // Close writer
        out.close();
    }

    public File createJson(Map<String,Object> userData) 
        throws JsonGenerationException, JsonMappingException, IOException {
        File user = new File("user.json");

        // Create mapper object
        ObjectMapper mapper = new ObjectMapper();

        // Add the userData information to the json file
        mapper.writeValue(user, userData);
        return user;
    }
}

Когда я отправляю форму с помощью этого кода, я получаю следующее сообщение об ошибке:

java.lang.NoClassDefFoundError:com/fasterxml/jackson/annotation/JsonAutoDetect com.fasterxml.jackson.databind.introspect.VisibilityChecker$Std. (VisibilityChecker.java:169)com.fasterxml.jackson.databind.ObjectMapper. (ObjectMapper.java:197)edu.tcnj.FormHandling.createJson(FormHandling.java:115)edu.tcnj.FormHandling.doGet(FormHandling.java:104)edu.tcnj.FormHandling.doPost(FormHandling.java:131)javax.servlet.http.HttpServlet.service(HttpServlet.java:641)javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

Теперь я знаю, что эта ошибка означает, что она не находит библиотеку связывания данных Джексона. Я разрабатываю в Eclipse и знаю, что путь сборки время от времени сбивается, поэтому я также поместил библиотеки в папку WebContent\WEB-INF\lib. Это решило проблемы, которые у меня были раньше. Однако на этот раз это, похоже, не решает мою проблему. Я даже открывал файлы jar, чтобы физически проверить наличие необходимой библиотеки и класса, и они есть.Я пробовал искать повсюду и искать разные способы включения библиотеки, но ничего не работает.

46
задан Perception 7 February 2013 в 16:23
поделиться