我在我的应用程序中使用jackson库,当我构建代码(使用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" />
我尝试更改版本,但仍然出现相同的错误。我需要在下载后加载这些jars吗?我已经将默认位置设置为ivy-lib,并且该过程对我下载的所有其他jars都有效。
出了什么问题?这是否需要特定版本或任何其他依赖项?或者有其他方法可以加载这些jar文件?
build.xml中我的类路径是什么?
<path id="compile.classpath">
<fileset dir="${ivy.lib}">
<include name="*.jar"/>
</fileset>
</path>