问题标签 [apache-felix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
12953 浏览

java - OSGi 上的 java.lang.NoClassDefFoundError

我有一个捆绑包,声明了一个激活器。这个激活器创建一个 JFrame 并显示它。

在 Eclipse 上作为插件项目运行它工作正常。当我穿上菲利克斯时,它不再起作用了。它显示: java.lang.NoClassDefFoundError: com/griep/ui/MainFrame

但是 MainFrame 与激活器位于同一个包中,当然,作为一个公共类。我不明白为什么类加载器找不到类。

有谁知道发生了什么?

0 投票
1 回答
583 浏览

osgi - Apache Felix obr 部署错误消息

obr deploy 命令失败时如何读取错误消息?这是一个例子:

如何阅读以上信息?什么是真正的不满意?

0 投票
2 回答
983 浏览

java - 如何在 Felix 中使用 Derby 客户端?

我想从 OSGi 包中运行 Derby Client。这个包是由 Maven 构建的,所以我添加了一个依赖项到org.apache.derby:derbyclient. 在运行时我得到以下异常:java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/testdb.

有趣的是,当我使用嵌入式驱动程序和对org.apache.derby.derby. 我只是看不出这两者之间的区别。

我做错了什么,我该如何解决?

一些花絮:

  1. 在网上找到一些建议后,我设置了以下 OSGi 标头:DynamicImport-Package: *. 这解决了嵌入式驱动程序的问题,但客户端仍然失败。
  2. 我使用的 Derby 版本是 10.7.1.1,应该启用 OSGi(至少它具有 OSGi 标头)。
0 投票
0 回答
399 浏览

jboss - JBoss中的OSGI gogo控制台?

仅供参考,我正在使用 Maven 和 Eclipse 3.6

是否可以将“felix”部署到 JBoss (4.2.3) - 这样我就可以从我的 Eclipse 控制台访问 Gogo shell?

如果是这样 - 我应该使用什么样的“描述符”?我只遇到过带有web.xml文件的“servlet”类型部署:

0 投票
2 回答
1470 浏览

java - Apache Felix Web 管理控制台部署失败

Apache Felix Web 管理控制台部署失败,要求不满足。这是日志:

如上所述,我尝试添加一些其他存储库来帮助解决问题。

任何已知的解决方法?

0 投票
2 回答
2895 浏览

java - OSGi 内存管理

我有关于 OSGi 内存管理的理论问题。

假设我们有一些 OSGi 容器(例如 Felix),假设我创建了一些内存泄漏的包。

以下是我的一些问题:

  1. 有没有办法限制这个“失败”包的内存消耗?例如,如果它超出了内存限制——OSGi 容器会向我发送一封电子邮件、卸载它还是其他什么?
  2. 捆绑“A”中的内存消耗如何影响捆绑“B”。例如,如果“A”导致内存不足错误,它会炸毁整个 OSGi 容器吗?
0 投票
1 回答
217 浏览

dependencies - 部署时所需的资源与 pom 中的说明不匹配

我正在阅读“ OSGi 和 Apache Felix 3.0 ”一书,遇到了一个问题,我正在部署的包坚持认为它依赖于另一个包的错误版本。对于之前研究过这些示例的任何人,我刚刚结束第 10 章——在 Bookshelf Service Bundle 中实现日志记录功能。

基本上问题如下:

我有一个名为“Bookshelf Service”的包,我刚刚添加了一些新的日志记录功能。此新功能将其置于版本 1.10.0

我有另一个名为“Bookshelf Service Gogo commands”的包,它是“Bookshelf Service”中功能的命令行界面。它的版本为 1.9.0。

令人费解的是,当我部署“Bookshelf Service Gogo commands”捆绑包时,它的安装方式如下:

这当然是“书架服务”捆绑包的错误版本。我想使用 1.10.0 版。

如果我更新或强制框架使用 1.10.0 版本,则“书架服务 Gogo 命令”提供的功能将不再可用。它拒绝使用最新版本的“书架服务”。

但是根据 pom.xml 文件,依赖项确实是针对 1.10.0 版本的“书架服务”。“Bookshelf Service Gogo commands”的POM如下:

所以我不明白为什么它只想使用 1.7.0。

还值得一提的是,这两个包都利用了 iPOJO,因此它们确实有 meta.xml 文件。但是,我认为问题不存在,因为我一直在将我的代码与书籍示例的可下载示例代码进行比较,并且一切似乎都匹配。

关于出了什么问题,或者在哪里寻找这个问题的根源的任何想法?


编辑:

根据请求,生成的清单。

书架服务 1.7.0:

书架服务版本 1.10.0

书架服务 Gogo 命令 1.9.0

0 投票
1 回答
1808 浏览

android - 嵌入式 Felix,在 android-app 内运行无法解析 org.osgi.framework

我无法弄清楚为什么会发生以下情况:

我正在从一个小型 android 应用程序运行嵌入式 apache felix。我在启动框架后以编程方式安装了 2 个捆绑包,但两者都从未进入“已解决”状态。因此,捆绑“MyBundle1”导入“MyBundle2”。

这就是 Logcat 告诉我的:

我完全理解错误消息所说的内容(嗯...... 1.5+ 版中的 org.osgi.framework 无法解决)但我无法弄清楚为什么会发生这种情况。为什么框架不能解析“自己”?!我尝试使用 adb shell 独立运行相同的 felix.jar ,并且两个捆绑包都可以工作。当然,felix.jar 是最新的(3.2)

谢谢你的建议!

丹尼尔

Felix 设置

不知道是不是和前面的问题有关系:

我安装并启动捆绑包

他们以前被 dx'ed 和移动到 /data/felix 与adb push

我在 android-application 中使用的相同代码也适用于常规 java console-app。

0 投票
1 回答
743 浏览

web-services - 如何在 OSGi + jetty 上运行 Metro Web 服务?

我正在尝试使用 OSGi (Felix) + Metro 让 WebService (wsdl) 在 Jetty 上工作?

我得到了 Servlet 和 JSP 在 OSGi + Jetty 上的工作,但不是使用 Metro 的 WebService。我有一个要测试的示例 OSGi WAR 文件,我将其部署在 Glashfish 上并且它可以工作。我需要在 Jetty 上部署相同的内容。

请分享一些关于此的示例或说明。

谢谢

维韦克

0 投票
1 回答
3251 浏览

java - 从 maven 切换到 gradle 来管理一个 osgi 大项目(>200 个捆绑包)

我们有一个很大的(约 215 个捆绑包并且还在计数)osgi (felix+springdm) 项目,使用 maven 和 maven-osgi 插件构建。

maven方式有几个问题:

1. 子模块 pom 必须从父 pom 继承以利用公共变量和依赖项(没关系),但是父 pom 必须包含所有包 pom 才能将所有内容构建在一起。这种循环引用很难保持同步。

2. 子包的单独版本控制非常复杂,以至于(在我加入项目之前)决定对所有包使用相同的版本。这意味着我们现在更新每个版本的所有捆绑包的版本,即使其中只有一堆实际上发生了变化。恕我直言,这使得 osgi 的整个概念变得毫无意义。请注意,我并不是说我们继续只接触少数捆绑包,我们会处理所有这些捆绑包,但每个版本通常包含 1 或 2 个功能,这只会影响一些捆绑包。

3. 为了完成最终工件的打包和部署,我们还需要另一个子模块来导入部署所需的所有包(除了少数几个用于测试和模拟)。[已编辑] 请注意,此聚合与主 pom 中的聚合不同,因为它不编译捆绑包,而只是从 maven 存储库中选择它们。

4. maven 依赖系统和 osgi 插件导入有时很难保持一致。忘记导入或放置错误的依赖项太容易了。

[已编辑] 在每个 bundle pom 中都有这样的部分:`

由于所有这些原因,我们对 maven 很好,但并不完全满意。最近有人提出 Gradle 不是万能药,而是对当前情况的明确改进。

你会建议搬到gradle吗?如果这是最好的方法?

有没有其他人经历过同样的情况?我认为对于所有使用 Osgi 的大型项目来说,它应该是通用的。

免责声明:我寻找类似的问题,例如:

Buildr、Gradle 还是等待 Maven 3?

为 OSGi 包寻找一个好的开发环境

Maven:OSGI、包和多模块项目

但无论是在哪里不是关于 osgi 子模块或不是关于 gradle。