英文:
No classDeffoundError Apache Karaf
问题
我在项目中使用 hapi-osgi-base v2.2 bundle,并在 karaf 容器中安装相同的 bundle,以便在运行时在我的代码中使用它。karaf 容器已预安装了 hapi-osgi-base v1.2 bundle,我的代码尝试使用 v1.2 bundle,并抛出 NoClassDefFoundError。我尝试在导入包部分指定范围 [2.2, 3.0),但我的 bundle 无法解析该范围,因为 hapi-osgi-base 并未导出版本 2.2 的包。有趣的是,它只导出所有带有 v0.0.0 的包。我不确定这是否与他们的 pom 文件有关。
我尝试使用<Embed-Dependency>hapi-osgi-base;version="2.2";scope=runtime</Embed-Dependency>,但仍然出现 NoClassDefFoundError。请提供建议。
英文:
I am using the hapi-osgi-base v2.2 bundle in my project and installing the same in the karaf container for my code to use it in the runtime. The karaf container already has a hapi-osgi-base v 1.2 bundle pre-installed my code was trying to use v 1.2 bundle and throwing a NoClassDefFoundError. I tried to specify the range in the import package section [2.2, 3.0) in the bundle. My bundle cannot resolve, range because hapi-osgi-base was not exporting the package version 2.2. It is also interesting it is only exporting all packages with v 0.0.0. I am not sure if it is something to do with their pom.
I tried to use <Embed-Dependency>hapi-osgi-base;version="2.2";scope=runtime</Embed-Dependency>. I still get the No ClassDeffoundError. Please suggest.
答案1
得分: 1
以下是您要翻译的内容:
OSGI的经验法则是,如果出现“ClassNotFoundException”错误,则表示您未进行导出,而java.lang.NoClassDefFoundError
错误则是未进行导入。
请参阅此链接:https://stackoverflow.com/questions/5181211/java-lang-noclassdeffounderror-on-osgi
英文:
Rule of thumb with OSGI is that if you get a "ClassNotFoundException", you're not exporting it, while java.lang.NoClassDefFoundError
is when you don't Import it.
See this https://stackoverflow.com/questions/5181211/java-lang-noclassdeffounderror-on-osgi
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论