NoClassDefFoundError JsonAutoDetect beim Parsen des JSON-Objekts

Ich entwickle eine Webanwendung mit den Cloud-Diensten von Amazon und muss JSON-Objekte verwenden. Wie mein Projekt eingerichtet ist, habe ich ein HTML-Formular, in das der Benutzer seine Informationen eintragen und abschicken wird. Nach dem Absenden werden die Daten in eine Online-Datenbank gestellt und eine Bestätigungs-E-Mail an diese gesendet. Bevor ich die Daten an die Datenbank senden kann, muss ich sie alle in ein JSON-Objekt einfügen. Mein in Java erstelltes Servlet sieht folgendermaßen aus:

<code>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;
    }
}
</code>

Wenn ich das Formular mit diesem Code abschicke, wird folgende Fehlermeldung angezeigt:

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

Jetzt weiß ich, dass der Fehler bedeutet, dass die Jackson-Datenbindungsbibliothek nicht gefunden wird. Ich entwickle in Eclipse und weiß, dass der Erstellungspfad von Zeit zu Zeit durcheinander kommt. Deshalb habe ich die Bibliotheken auch im Ordner WebContent \ WEB-INF \ lib abgelegt. Dies hat Probleme gelöst, die ich zuvor hatte. Dies scheint jedoch mein Problem diesmal nicht zu lösen. Ich habe sogar die JAR-Dateien geöffnet, um physisch zu überprüfen, ob die benötigte Bibliothek und Klasse vorhanden sind. Ich habe versucht, überall zu suchen und nach verschiedenen Möglichkeiten zu suchen, um die Bibliothek einzuschließen, aber nichts scheint zu funktionieren.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage