引起:java.lang.ClassNotFoundException:找不到com.fasterxml.jackson.databind.JavaType

时间:2016-10-29 09:22:35

标签: java json ant jackson

我在我的应用程序中使用jackson libs,当我构建代码(使用ant)时,构建成功。我已经尝试过在单元测试中使用这些方法进行模拟测试,并且工作正常。但是当启动karaf时,它给了我这个错误:

function base64_to_jpeg($base64_string, $output_file) {
$ifp = fopen($output_file, "wb"); 

$data = explode(',', $base64_string);

fwrite($ifp, base64_decode($data[1])); 
fclose($ifp); 

return $output_file; 
}

这些是我在ivy.xml中下载的罐子:

Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.JavaType not found by com.project.test.application [224]
    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)
    at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

我试过更改版本,但仍然是同样的错误。下载后我是否需要加载这些罐子?我将默认位置保留为ivy-lib,该过程适用于我正在下载的所有其他jar。 出了什么问题?这是否需要特定版本或任何其他依赖项?或者还有其他方法来加载这些jar文件吗?

我在build.xml中的类路径

   <dependency org="com.fasterxml.jackson.core" name="jackson-core" rev="2.4.4" transitive="false" />
    <dependency org="com.fasterxml.jackson.core" name="jackson-annotations" rev="2.4.4" transitive="false" />
    <dependency org="com.fasterxml.jackson.core" name="jackson-databind" rev="2.4.4" transitive="false" />

3 个答案:

答案 0 :(得分:7)

我收到此错误是因为其他某个类中的其他人正在使用org.codehaus.jackson包而我正在使用com.fasterxml.jackson包。由于这种罐子的冲突,它正在抛出这个ClassNotFoundException。一旦我删除并用codehaus jars替换了那些fastxml罐子,它就开始正常工作了。

答案 1 :(得分:3)

我们可以在pom.xml中添加以下依赖项,并解决所有类型的jackson错误

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.4.4</version>
        <exclusions>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.4.4</version>
    </dependency>

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

答案 2 :(得分:0)

对于我来说,版本2.8.6不适用于Spring MVC上下文(不带Boot),而版本2.9.4不适用 效果很好。