问题标签 [osgi-bundle]

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 投票
1 回答
1929 浏览

file-upload - Apache Commons FileUpload OSGi 包

我在 Karaf 中安装我的包时遇到了这个错误,我是 OSGi 和 Karaf 的新手,所以我可以在解释错误时使用一些帮助。

这是在我的feature.xml

在我的 POM 中

Maven 存储库显示 1.3 的最新版本,但如果有,它可能不是 OSGi 版本,有人知道我在哪里可以找到它吗?我也试过wrap:mvn了,也没有用。

0 投票
1 回答
239 浏览

java - 从 FrameworkUtil 类获取 BundleContext 后抛出 NPE

我正在按照本教程将 OSGi 嵌入到基于 maven 的应用程序中。我有一个类文件,可以创建并启动此处提到的框架,并且它在那里工作正常,因为我能够轻松获得 BundleContext。

我在我的 pom.xml 文件中添加了这个依赖项。

现在,当我运行我的整个框架并且当它到达我需要使用的同一个基于 maven 的项目中的一个新类文件时,BundleContext我想我可以使用这段代码来获取 BundleContext`

FrameworkUtil.getBundle(ModelProcessor.class).getBundleContext();

但不知何故,上面的代码把我扔了NullPointerException,然后我试着打印出来看看发生了什么——

System.out.println(FrameworkUtil.getBundle(ModelProcessor.class));

所以上面的行打印 -null

有谁知道 null 在这里对 OSGi 意味着什么以及我可以做些什么来解决这个问题?

谢谢您的帮助。

0 投票
1 回答
907 浏览

java - 我应该在 OSGi 中为 FrameworkFactory 选择哪个包?

我最近开始使用 OSGi 框架。我正在尝试从基于 maven 的项目中启动一个 OSGi 容器。

我在上面的 maven 项目的 pom.xml 文件中添加了这个依赖项-

以下是我的主要应用程序-

现在,当我尝试为 导入包时FrameworkFactory,我有两个选项可供选择。下面是图像。谁能帮我在这里选择哪一个?

在此处输入图像描述

我选这两个?

这是正确的吗?

0 投票
1 回答
263 浏览

java - 使用字节数组而不是文件位置安装 osgi 包?

我正在尝试安装 OSGi 包。我能够成功地做到这一点。现在我正在做的是,在我们公司,我们有某种存储空间,我们在其中存储所有 OSGi 捆绑包 jar。所以我去把那些 OSGi 包 jar 下载到某个本地目录中,然后我尝试从本地位置安装这些包,这些包是从我的存储库下载的。

下面的方法只接受文件位置 - 所以我提供了我的完整本地文件路径。

context.installBundle(localFilename)

有什么办法,我可以使用byte[]. 基本上,我试图避免将 jar 文件从我的存储位置下载到某个本地文件夹,然后使用该本地位置来安装捆绑包。

有没有什么办法可以做到这一点,而无需将 jar 文件从我的存储位置复制到我的本地文件夹,然后使用本地 jar 文件的完整路径然后安装它?

任何人都可以通过上面代码的简单示例来帮助我吗?谢谢您的帮助。

0 投票
1 回答
1504 浏览

java - 如何在未启动框架的其他类中获取 BundleContext?

我最近开始使用 OSGi 框架。我正在尝试从 Java 主应用程序启动 OSGi 框架。我正在按照本教程将 OSGI 容器嵌入到我的项目中。

下面是我用来启动 OSGi 容器的 Java 主应用程序。在下面的课程中,我可以BundleContext使用该framework对象,然后我可以使用它BundleContext来安装实际OSGi bundles的 .

现在这是我在同一个基于 Maven 的项目中的第二堂课。我也需要在这里使用 BundleContext 。所以我想我可以FrameworkUtil.getBundle(OSGiBundleTest2.class).getBundleContext()用来获取 BundleContext 但它在这里不起作用,我在那里得到了 NPE。这意味着,这个类不是由 OSGi 类加载器加载的。那么现在在下面的类中使用 BundleContext 的最佳方法是什么。

}

callMethodOfAnotherClass将从 OSGiBundleTest1 类调用。我没有考虑将framework对象传递给 OSGiBundleTest2 类的构造函数或某种方法来使用框架对象,然后从那里获取 BundleContext ......还有其他方法可以做这件事吗?

有什么方法可以确保所有的类都只被 OSGI 类加载器加载?

0 投票
1 回答
422 浏览

web-applications - 如何在 Tapestry 中使用 OSGi 服务

我有我的 Tapestry Web 应用程序,它为某些数据集提供完整的 CRUD 功能。到目前为止,我一直在使用模拟来开发和测试它。

但是,我现在需要用 OSGi 服务(使用 Felix 运行)替换该模拟。

我的主要问题/问题是:

  1. 我是否需要将 OSGi 服务注入到我的挂毯应用程序中,如果需要,该怎么做?
  2. 假设它是注入的,有没有关于如何使用它的实践?我应该调用这些方法或类似的任何特殊方法吗?
  3. 在我调用了我需要的方法之后,我是否需要对它做一些事情,还是自动完成?
  4. 我需要担心吗HttpService(我看了一些关于它的抱怨,但不太明白)

为您提供一些背景信息,这就是我现在的做法

例如,我想要替换MyDao dao为提供相同功能的 OSGi 服务,以便我可以在onPrepareForRender方法中使用它。

我可以放心地假设与该服务关联的 OSGi 包已经在运行。

应用程序的其余部分作为 OSGi 应用程序制作。我在我的 pom.xml 中添加/更改了一些东西(maven-bundle-plugin,按照http://www.javabeat.net/2011/11/writing-an-osgi-web-application/中的说明添加了一些清单条目)。

但是,它仍然不起作用。

顺便说一句,我正在尝试将我的 WAR 转换为 WAB。

先感谢您 :)

编辑:从 WAR 转换和部署到 WAB 时出现问题

当我将我的网络应用程序打包为war东西时,效果很好。但是,当我将它打包为bundle,并尝试在 GlassFish 中部署它时,我收到以下错误消息:

部署期间发生错误:没有安装的容器能够处理此应用程序管理员战争。有关详细信息,请参阅 server.log。

当我转到 server.log 时,它是这样说的:

0 投票
1 回答
130 浏览

android - Apache Felix - 在 android 应用程序的 assests 目录中存储包

我将 Apache Felix 嵌入到一个 android 应用程序中。现在,我使用下面的代码来安装一个包:

这可以正常工作,但它需要将捆绑包存储在 android 设备的 sdcard 中。然而,我不喜欢那样。我希望将捆绑包存储在 android 项目内的目录中。例如,在assests文件夹内。有没有办法做到这一点?

我试过这个:

正如预期的那样,它没有用。

0 投票
1 回答
25258 浏览

java - 无法解决 1.0:缺少要求 [1.0] osgi.wiring.package;(&(osgi.wiring.package=

我正在尝试启动我的一个捆绑包,但是一旦启动它,就会出现以下异常。我不确定问题是什么。

让我告诉你我是怎么做的——我按照本教程启动了一个 OSGi 框架,它工作正常,但是一旦我启动包,GoldeneyeModellingFramework——

而且,我在我的主项目中使用了下面的依赖项,它启动了一个 OSGi 框架/容器:

它总是给我上述例外。BundleGoldeneyeModellingFramework依赖于GoldeneyeStorageService包含这个包的 maven 项目com.host.domain.sharedpersonalize.storageservice

以下是捆绑包的Manifest.MF文件GoldenModellingFramework

而且,下面是捆绑的pom.xml文件:GoldeneyeModellingFramework

GoldeneyeStorageService如果您需要Maven 项目的任何其他文件,请告诉我。我不知道如何解决这个问题。谁能帮我这个?

一些更新:-

下面是GoldeneyeStorageService项目的 MANIFEST.MF 文件-

0 投票
1 回答
3652 浏览

java - 在 OSGi 包中添加第三方 Maven 依赖项的最佳方法

我刚刚开始进行 OSGI 开发,并且正在努力了解处理依赖/第三方 JAR 或 maven 依赖项的最佳方法是什么。

即,如果我正在创建一个捆绑包,那么我可能会使用一些第 3 方 JAR。当我创建我的包 JAR 以部署到 OSGI 时,显然这些 3rd 方 JAR 不包括在内,因此包将不会运行。

我知道一种选择是将这些 JAR 转换为捆绑包并将它们部署到 OSGI 容器中。但是我不能对我将要使用的每一个 Maven 依赖项都这样做。

处理这种情况的最佳解决方案是什么?有什么办法可以将 jar 文件直接嵌入到包中?

下面是我的 java 主应用程序,它正在启动 OSGi 框架,然后尝试安装一个依赖于 Log4j 的简单包。将来,我还可以拥有其他一些第三方 Maven 依赖项。

下面是我的 OSGi 包的 pom.xml 文件DependencyBundle-

0 投票
1 回答
163 浏览

android - 更新嵌入到 Android 应用程序中的 Felix 中的包显示:“java.io.FileNotFoundException”

我将 Apache Felix 嵌入到一个 android 应用程序中。启动和停止捆绑包工作正常。但我想通过读取另一个包文件来更新包。这是我的代码:

我希望这可以工作,并且我的捆绑包将得到更新,但不幸的是,我收到了以下错误:

此异常发生在以下行:

我完全确定该捆绑包AndroidVideoPlayer_1.0.0.201308231205.jar存在于下载目录中,并且我之前尝试过启动它并且它运行良好。我很困惑。有什么帮助吗?谢谢。