java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory

我正在研究示例。我创建了一个示例并添加了所需的jar。但是,当我尝试运行项目时,它会引发异常。YouTube broadcastJava Project

例外:

Throwable: com/fasterxml/jackson/core/JsonFactory
java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonFactory
    at com.google.api.client.json.jackson2.JacksonFactory.<init>(JacksonFactory.java:44)
    at com.google.api.services.samples.youtube.cmdline.live.Auth.<clinit>(Auth.java:35)
    at com.google.api.services.samples.youtube.cmdline.live.CreateBroadcast.main(CreateBroadcast.java:55)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 3 more

我从这个GitHub存储库下载了这个项目。


答案 1

将以下依赖项添加到您的pom.xml

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.5.2</version>
</dependency>

答案 2

如果您使用的是弹簧靴,则默认情况下会添加杰克逊

因此,您正在手动添加的杰克逊版本可能与一个弹簧靴添加的版本相冲突

尝试从你的 pom 中删除 jackson 依赖项,

如果您需要覆盖弹簧靴添加的版本,则需要先将其排除,然后再添加自己的版本


推荐