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

Sid*_*rth 5 java ant json jackson

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

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)
Run Code Online (Sandbox Code Playgroud)

这些是我在ivy.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" />
Run Code Online (Sandbox Code Playgroud)

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

我在build.xml中的类路径

<path id="compile.classpath">
      <fileset dir="${ivy.lib}">
         <include name="*.jar"/>
      </fileset>
   </path>
Run Code Online (Sandbox Code Playgroud)

Sid*_*rth 7

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