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

时间:2015-05-21 07:20:17

标签: java jar noclassdeffounderror live-streaming youtube-data-api

我正在处理YouTube broadcast示例示例。我创建了一个示例Java 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

我从this GitHub repository下载了该项目。

8 个答案:

答案 0 :(得分:47)

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

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

答案 1 :(得分:3)

请求的jar可能不是jackson- 注释 -x.y.z.jar但杰克逊 - 核心 -x.y.z.jar可以在这里找到: http://www.java2s.com/Code/Jar/j/Downloadjacksoncore220rc1jar.htm

答案 2 :(得分:2)

如果您使用的是springboot,则默认情况下会添加 jackson

因此,您要手动添加的杰克逊版本可能与一个春季靴子添加的冲突

尝试从pom中删除杰克逊依赖项,

如果您需要覆盖spring boots添加的版本,则需要先排除,然后添加自己的版本

答案 3 :(得分:1)

你必须添加一个jar:jackson-annotations-2.1.2.jar 您可以从here下载它并将其添加到类路径中 如果您使用的是gradle,请添加以下依赖项。

compile 'com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.5.2'

答案 4 :(得分:1)

我也遇到过同样的错误。 我添加了对 pom.xml 的依赖(我正在使用 Maven)

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

我开始尝试使用 2.9.0 版本,然后我发现了一个不同的错误 (com/fasterxml/jackson/core/exc/InputCoercionException) 然后我尝试不同的版本,直到所有错误都用 2.12.1 版解决

答案 5 :(得分:0)

由于版本过旧,出现此错误。 然后我改成了这个版本n错误消失了 使用Maven 我的pom.xml

<jackson.version>2.5.2</jackson.version>


<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>

我的旧版本是'2.2.3'

答案 6 :(得分:0)

通过将依赖项升级到以下版本解决了该问题

 boolean hasCoreValues = false;
 Optional<Map<String,List<String>> coreValues = buildCoreValuesMap(core); 
 hasCoreValues = corevalues.map(cv -> {
    final List<String> values = cv.getOrDefault(value, Immutable.of())
    values.removeAll(singletonList(null));
    return !values.isEmpty();
 }).orElse(false);



public Optional<Map<String, List<String>>> buildCoreValuesMap(String core) {
        return Optional.ofNullable(context.selectFrom(DataStorage)
                .where(DataStorage.CORE.in(core))
                .fetchGroups(DataStorage.CORE,
                        DataStorage.VALUES));
    }

答案 7 :(得分:0)

在我的情况下,问题是当我添加com.fasterxml.jackson.dataformat时 我将版本为 2.11.0

所有其他Jackson依赖项均为2.8.0,其中一个为 2.11.0 ,并将其全部更改为 2.8.0

FYI,最新的是2.11,但由于我的旧代码,我也将其保留为2.8。

修复之前[错误]

com.fasterxml.jackson.dataformat version is 2.11.0    
com.fasterxml.jackson.dataformat 杰克逊数据格式XML 2.11.0
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.0</version>
</dependency>

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

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

修复后[ WORKED ] com.fasterxml.jackson.dataformat版本为2.8.0

com.fasterxml.jackson.dataformat 杰克逊数据格式XML 2.8.0
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.0</version>
</dependency>

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

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