Java异常com/fasterxml/jackson/core/util/instanceable

Java异常com/fasterxml/jackson/core/util/instanceable,java,json,jackson,Java,Json,Jackson,嗨,我在尝试将对象转换为JSON字符串时遇到以下异常。我不知道为什么会出现这个错误 String json = ""; ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter(); try { // Convert our object to a string json = ow.writeValueAsString(obj); <----

嗨,我在尝试将对象转换为JSON字符串时遇到以下异常。我不知道为什么会出现这个错误

    String json = "";
    ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
    try 
    {
        // Convert our object to a string
        json = ow.writeValueAsString(obj); <----Exception throwing code
    } 
    catch (JsonProcessingException e) 
    {
        ConsoleLog.DisplayToConsole("Exception: parse JSON: " + e.getMessage());
    }
我删除了jackson-annotations.jar文件夹并添加了一个更新的版本。但现在我得到了这个错误:

java.lang.NoClassDefFoundError:com/fasterxml/jackson/annotation/jsonautodect

如上所述:

ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
堆栈跟踪:

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/util/Instantiatable
at com.fasterxml.jackson.databind.ObjectWriter._configureJsonGenerator(ObjectWriter.java:729)
at com.fasterxml.jackson.databind.ObjectWriter._configAndWriteValue(ObjectWriter.java:601)
at com.fasterxml.jackson.databind.ObjectWriter.writeValueAsString(ObjectWriter.java:530)
at controller.JSONController.ObjectToJSON(JSONController.java:35)
at controller.MongoDBController.generateJSONStrings(MongoDBController.java:64)
at view.ChartWindow$1.widgetSelected(ChartWindow.java:164)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at view.ChartWindow.main(ChartWindow.java:186)
 Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.core.util.Instantiatable
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonAutoDetect
at com.fasterxml.jackson.databind.introspect.VisibilityChecker$Std.<clinit>(VisibilityChecker.java:172)
at com.fasterxml.jackson.databind.ObjectMapper.<clinit>(ObjectMapper.java:195)
at controller.JSONController.ObjectToJSON(JSONController.java:32)
at controller.MongoDBController.generateJSONStrings(MongoDBController.java:64)
at view.ChartWindow$1.widgetSelected(ChartWindow.java:164)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at view.ChartWindow.main(ChartWindow.java:186)
 Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonAutoDetect
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 11 more

我认为你包括了错误版本的Jackson Core

我从Maven Central下载了Jackson Core 2.0.0-RC1的JavaDoc,如屏幕截图所示

那里的com.fasterxml.jackson.core.util包没有缺少的可实例化类

最新版本的JavaDoc没有

运行时在类路径上找不到引用的类时,将引发NoClassDefFoundError异常。com.fasterxml.jackson.databind.ObjectWriter类正在尝试加载缺少的类。因此,com.fasterxml.jackson.databind.jar应该是针对不同版本的jackson Core构建的


我会尝试用Maven Central最新版本的Jackson Core、Annotation和Databind JAR替换您的JAR。

您还没有发布堆栈跟踪。请发布完整的堆栈跟踪以及所有由节引起的跟踪,并确定代码中引发异常的行。您应该使用真正的依赖关系管理器,例如maven,而不是手动构建库文件夹查看jackson databind的依赖关系它取决于jackson注释以及jackson core
Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonAutoDetect
at com.fasterxml.jackson.databind.introspect.VisibilityChecker$Std.<clinit>(VisibilityChecker.java:172)
at com.fasterxml.jackson.databind.ObjectMapper.<clinit>(ObjectMapper.java:195)
at controller.JSONController.ObjectToJSON(JSONController.java:32)
at controller.MongoDBController.generateJSONStrings(MongoDBController.java:64)
at view.ChartWindow$1.widgetSelected(ChartWindow.java:164)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
at view.ChartWindow.main(ChartWindow.java:186)
 Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonAutoDetect
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 11 more