我在我的应用程序中使用 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)
这些是我在 ivy.xml 中下载的 jar:
<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" />
我已经尝试更改版本,但仍然出现同样的错误。下载后我必须加载这些罐子吗?我将默认位置保留为 ivy-lib,并且该过程适用于我正在下载的所有其他 jar。
出了什么问题?这是否需要特定版本或任何其他依赖项?或者有其他方法来加载这些jar文件吗?
我的 build.xml 中的类路径
<path id="compile.classpath">
<fileset dir="${ivy.lib}">
<include name="*.jar"/>
</fileset>
</path>
我收到此错误是因为其他班级中的其他人正在使用org.codehaus.jackson
包和我正在使用com.fasterxml.jackson
包裹。由于罐子的冲突,它抛出了这个ClassNotFoundException
。当我删除并用 codehaus jar 替换那些 fastxml jar 后,它开始正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)