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

Eclipse 外部的 OSGi 捆绑包

傅明知
2023-03-14

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

我已经创建了一个包含我正在使用的所有库的捆绑包(mysql连接器等),并且我正在将这个捆绑包导入到我需要这些库的每个捆绑包中。我不知道这是否是实现它的最佳方法。另外,我在我的应用程序中使用线程,其中一些使用来自不同捆绑包的方法,这可能是问题的根源吗?

有谁知道我可以做什么吗?我有肌萎缩性侧索硬化症

共有1个答案

左丘弘致
2023-03-14

好了,我发现问题了。默认情况下,Eclipse将参数< code > org . osgi . framework . boot delegation 设置为*,但是所有其他OSGi框架都没有。

我现在正在使用ApacheKaraf,我已经更改了配置。它位于etc/中的属性从默认值(org.apache.karaf.jaas.boot,sun.,com.sun.,javax.transaction,javax.transaction.*)到*。这使它能够工作,但我仍在尝试识别需要加载的确切库,因为不鼓励将此参数设置为*。

要查找更多信息:http://wiki.osgi.org/wiki/Why_does_Eclipse_find_javax.swing_but_not_Felix?

谢谢,我希望这可以帮助其他人,

 类似资料:
  • 我创建了一个依赖于SLF4J的捆绑包,因此使用Logback来实现OSGI。这一切都捆绑起来并安装正常,但是当我开始捆绑时,我得到以下异常: org.osgi.framework.BundleException: 無法解析 com.felix.test [20](R 20.0): missing requirements [com.felix.test [20](R 20.0)] osgi.wir

  • 我在试图限制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

  • 我对这个(OSGI)真的是新手,试图做简单的例子。我不能让懒惰的修辞奏效。我知道有一些解决这些问题的蓝图,但在开始之前,我认为学习一些基础知识是很好的。 好吧,我已经改变了我的代码,但仍然没有运气。 外部应用程序,install bundles,启动framework,然后只启动DataServiceClient Bundle。不能访问任何bundle类。 以下是DataServiceClient

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

  • 我有一个OSGI应用程序,其包需要两个版本的IBM MQSeries:6.0.2和7.0.1。我们安装了以下IBM MQ包(仅提及主要包) Bundle B 我们还定义了。没有伙伴类加载,没有动态类加载。 现在,当Bundle A加载时,使用 我希望Equinox从包加载该类。事实并非如此!?!??MQQueueConnectionFactory是从Bundle加载的!! 因此,包A使用MQ 6.