我正在尝试 Karaf 并安装了一些捆绑包 X。该捆绑包 X 抱怨缺少需求:
Unresolved requirements ... osgi.wiring.package; (osgi.wiring.package=org.apache.commons.httpclient)]
因此,我尝试通过
bundle:install mvn:commons-httpclient/commons-httpclient/3.1
提供 org.apache.commons.httpclient,这有效。
但是,在尝试再次启动 X 后,我仍然收到相同的错误消息。
谢谢!
该 jar 不是捆绑包,因此无法部署到 karaf,它只是被忽略。
尝试
karaf@root>bundle:install -s mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/3.1_7
确保您的包在 META-INF/MANIFEST.MF 中包含 osgi 导入声明语法。我假设您使用 bndtools 来生成捆绑包。
同意@Antonio,对于不是 OSGi 捆绑包的第三方库,您也可以尝试使用
wrap
: 安装它们
bundle:install -s wrap:mvn:commons-httpclient/commons-httpclient/3.1
这将为库创建一个基本的 OSGi MANIFEST...
您可以在这里找到更多信息: https://karaf.apache.org/manual/latest/#_dynamically_wrapping_jars