Java 如何修复org.osgi.framework.BundleException:无法缓存捆绑包?
我正在使用一个OSGi BundleActivator代码。当我尝试使用ApacheKaraf安装它时,我总是得到一个Java 如何修复org.osgi.framework.BundleException:无法缓存捆绑包?,java,osgi,apache-karaf,osgi-bundle,Java,Osgi,Apache Karaf,Osgi Bundle,我正在使用一个OSGi BundleActivator代码。当我尝试使用ApacheKaraf安装它时,我总是得到一个无法安装捆绑包mvn:com.baeldung/osgi-intro-sample-activator/1.0-SNAPSHOT:org.osgi.framework.BundleException:无法缓存捆绑包:mvn:com.baeldung/osgi-intro-sample-activator/1.0-SNAPSHOT错误 我尝试遵循的教程如下: 我使用的命令是bund
无法安装捆绑包mvn:com.baeldung/osgi-intro-sample-activator/1.0-SNAPSHOT:org.osgi.framework.BundleException:无法缓存捆绑包:mvn:com.baeldung/osgi-intro-sample-activator/1.0-SNAPSHOT
错误
我尝试遵循的教程如下:
我使用的命令是bundle:install mvn:com.baeldung/osgi-intro-sample-activator/1.0-SNAPSHOT
。尝试添加-s标志或使用install
而不是bundle:install
,但没有帮助。试图从Karaf根目录和捆绑目录运行它,但没有帮助
在一个Karaf文件夹中,我试图设置org.ops4j.pax.url.mvn.localRepository=/Users/bogdansalyp/.m2/repository
,但没有帮助
清空.m2/存储库
,没有帮助。将其复制到bundle和Karaf文件夹,没有帮助
已尝试从不同目录执行mvn安装
和mvn清理安装
,但没有帮助
Karaf是v4.2.6,maven是3.1.1
以下是我的pom.xml:
4.0.0
提前感谢您的帮助 如果我没有弄错的话,激活器不应该位于私有包中,它应该是公共的
很可能,这就是罪魁祸首:
<Private-Package>com.baeldung.osgi.sample.activator</Private-Package>
com.baeldung.osgi.sample.activator
删除它。我已经有一段时间没有使用Karaf了,但我没有什么想法
IIRC“org.osgi.framework.BundleException:无法缓存捆绑包”实际上意味着Karaf从提供的URL获得的不是可安装的捆绑包。所以
- 在尝试在Karaf中安装捆绑包之前,请确保您已经运行了
mvn install
(mvn package
还不够)在本地Maven repo中安装捆绑包
- 尝试将版本表
1.0-SHAPSHOT
更改为1.0.0-SNAPSHOT
。不确定这是否相关,但通常尝试
- 尝试使用
bundle:watch
而不是bundle:install
(),当您将bundle重新安装到本地Maven repo时,它也会自动更新bundle
我隐约记得在捆绑包:安装和快照捆绑包和/或本地Maven存储库方面有一些问题,但遗憾的是没有详细信息。要检查的一件事是你的答案是正确的 可能有点晚了,但错误表明karaf找不到包裹。如果生成的清单正确,请检查.m2或中的文件位置。
祝你好运 您应该用bundle:install mvn:com.baeldung/osgi intro sample activator/1.0-SNAPSHOT
替换为bundle:install mvn:com.baeldung/osgi/1.0-SNAPSHOT
,因为您的工件ID是osgi。继续关注此链接不幸的是,这并没有改变情况