当前位置: 首页 > 面试题库 >

OSGI-处理捆绑包所需的第三方JAR

竺焕
2023-03-14
问题内容

我才刚刚开始OSGI开发,并且正在努力了解如何最好地处理依赖的JAR。

即,如果我要创建捆绑包,则很有可能需要使用一些第三方JAR。当我创建要部署到OSGI的捆绑软件JAR时,显然不包括这些第三方JAR,因此捆绑软件将无法运行。

我知道一种选择是将这些JAR打包成束,然后将它们部署到OSGI容器中。但是,如果只需要一个捆绑包使用它们,这似乎并不理想。

最好的解决方案是什么?可以将JAR嵌入捆绑的JAR中吗?如果可以,这是否合理?


问题答案:

我几乎总是将每个罐子分开捆。OSGi本身是为了模块化而设计的,您不这样做就使整个系统变得荒谬。

如果要将JAR转换为包,则可能要使用Peter
Kriens编写
的BND工具。但是首先,我建议您在SpringSource
Enterprise
Bundle存储库中

查找该捆绑包,如果他们还没有为您完成工作。



 类似资料:
  • 在感觉自己已经掌握了如何使用OSGi之后,我尝试向我的应用程序添加第三方依赖,特别是log4j2,该应用程序使用ApacheFelix并与maven捆绑插件捆绑。不幸的是,我似乎陷入了依赖地狱。 我尝试过使用许多maven捆绑包策略,如导入包,嵌入依赖,wrapImportPackage,Embed-Transitive,以及设置特定的版本号,仅举几例。以下是我的pom在这个插件中的样子: 我觉得

  • 于是我就开始了实现这些依赖的“兔子洞”。基于maven页面,我将features.xml文件放在一起: 现在,当我尝试安装它时,我得到: 我觉得这可能和equinox vs Felix有关?我只是使用默认的Karaf设置,并使用内置的Netbeans Maven项目创建包,对于OSGI世界来说,我还是比较新的。在大多数情况下,我可以启动和运行bundle,并为一个应用程序建立了一个基本的集合,但这

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

  • 我在试图限制OSGi捆绑包可以执行的操作时遇到了一个问题。根据我阅读的文档,OSGi捆绑包的权限应该在OSGi-INF/permissions中设置。perm文件位于bundle的JAR中。然而,无论我在该文件中写了什么(无论该文件是否存在),bundle似乎都拥有所有权限。更具体地说,我使用命令行启动OSGi 然后我用命令安装捆绑包 和启动它。当我试图执行一个操作t

  • 我试图在Felix中添加一个新的OSGI包(没有Karaf)作为ActiveMQ客户端(消息发送方)。 ActiveMQ客户端在非OSGI环境中运行良好。但当我在Felix中使用相同的代码(稍加修改)时,它会抛出以下错误: org.osgi.framework.捆绑异常:无法解决com.packtpub.felix.bookshelf-库存-impl-mock[7](R 7.3):缺少需求[com

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