当前位置: 首页 > 知识库问答 >
问题:

如何安装和开始osgi捆绑包一次

惠洛华
2023-03-14

我有两个捆绑说A和B。A 依赖于 B(在 A 的 MANIFEST 中指定为 Required-Bundle:B)。

现在我安装两个A, B包一个接一个(c

org.osgi.framework.BundleException: Could not resolve module: A [140]
  Unresolved requirement: Require-Bundle: B; bundle-version="1.0.0"

我从异常中了解到捆绑包B尚未启动(已解决)。现在如何解决这个问题呢?

解决这个问题的唯一方法是排序包

顺便说一下,我用的是春分。

共有1个答案

郎魁
2023-03-14

确保在启动任何捆绑包之前安装所有捆绑包。一、 e.您需要这样做:

    <李>安装,安装B < /李><李>年代

而不是这个:

    < li >安装A,启动A < li >安装B,启动B

在第二个(错误的)场景中,您将得到一个分辨率错误,因为就OSGi而言,A依赖于B and B还不存在。

在第一个(正确的)场景中,当您启动A时,OSGi将发现它需要解析A和B以满足依赖关系。

[顺便说一句,在你的问题中,你似乎从解决开始感到困惑:你说“B还没有开始(解决)”。这些是完全不同的东西。B只需要在启动A之前安装,OSGi会在需要的时候自动解析它。

 类似资料:
  • 问题内容: 如何定义OSGi捆绑包的开始级别? 我正在使用Apache felix,并希望在框架执行过程中保持起始级别。我预计Manifest中的条目根本不需要非常频繁地更改bundle的开始级别。MF似乎是最明智的。我已经到org.osgi.framework.startlevel了,但是还没有看到实际的例子。 如果有一种巧妙的方法将起始级别并入POM,那么我也将maven与maven-bund

  • 我正在开发超文本传输协议客户端应用程序作为一个OSGI捆绑项目,我已经使用apache maven创建项目文件夹结构使用下面的命令。 上面的命令创建了项目文件夹结构,因为我使用的是基于httpclient的应用程序。我在pom中添加了依赖项。xml如下所示。 我执行以下命令, 根项目上进行构建 它在本地maven存储库中创建了所需的jar文件。 问题从这里开始。我试图在ApacheServiceM

  • 问题内容: 如何从jar库创建OSGi捆绑包? 问题答案: 如果您使用的是eclipse:有一个向导。 它允许您选择许多jar库,并创建一个包含这些jar的插件项目(即OSGi捆绑包)。 你可以在这里找到它:

  • 我使用EclipseIndigo使用OSGiJava框架开发了一些包。有一个主捆绑包,它依赖于其他捆绑包,并且具有要运行的主程序。如果我尝试在Eclipse中运行所有捆绑包,一切都正常工作,但是如果我将每个捆绑包保存为一个JAR,并在命令行中启动OSGi框架,当我尝试启动主捆绑包时,会出现异常<code>NoClassDefFoundError。找不到的类是依赖项。包的其余部分处于活动状态,主包刚

  • 我在Apache Felix上开发了一个OSGI捆绑包。捆绑包公开不同的API来实时管理YouTube事件。捆绑包服务将通过REST服务公开,并将由用户通过Web浏览器(chrome、safari、mozilla)使用。 我为该帐户生成凭据Google(client_secret和client_id)并将其保存在文件中,然后我的代码使用此凭据并正常工作。 我使用这个类(在youtube文档中找到)

  • 我正在将我的spring-java项目转移到OSGi。 我有一些依赖项,这些依赖项在spring ebr repo或maven repo中不能作为包提供。处理它们的最佳方法是什么? null