问题描述
我在项目中使用了hapi-osgi-base v2.2捆绑软件,并将其安装在karaf容器中,以便我的代码在运行时使用它。 karaf容器已经预先安装了hapi-osgi-base v 1.2捆绑包,我的代码试图使用v 1.2捆绑包并抛出NoClassDefFoundError。我试图在捆绑软件的导入包部分[2.2,3.0)中指定范围。我的捆绑包无法解析范围,因为hapi-osgi-base没有导出2.2版的软件包。有趣的是,仅导出v 0.0.0的所有软件包。我不确定这是否与他们的pom有关。
我尝试使用hapi-osgi-base; version =“ 2.2”; scope = runtime。我仍然收到No ClassDeffoundError。请提出建议。
解决方法
OSGI的经验法则是,如果您收到“ ClassNotFoundException”,则您不会导出它,而java.lang.NoClassDefFoundError
则是您不导入它。