Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修复org.osgi.framework.BundleException:无法缓存捆绑包?_Java_Osgi_Apache Karaf_Osgi Bundle - Fatal编程技术网

Java 如何修复org.osgi.framework.BundleException:无法缓存捆绑包?

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

我正在使用一个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
错误

我尝试遵循的教程如下:

我使用的命令是
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。继续关注此链接

不幸的是,这并没有改变情况