- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个测试,其中运行一个需要加载 osgi 服务的类。当我开始测试时,每次都会收到 NullPointerException。运行应用程序时它工作正常。我的捆绑上下文为空。我该如何解决这个问题?这是应该加载服务的类的行:
BundleContext ctx = getBundle(this.getClass()).getBundleContext();
deviceCfgModel = getService(ctx, IDeviceCfgModel.class);
我在 FrameworkUtil
API 中找到了该解释,但我仍然不知道该怎么做。
最佳答案
FrameworkUtil.getBundle(Class)
仅当该类由 OSGi bundle 类加载器加载时才有效,即当您运行 OSGi 框架时。
您的 JUnit 测试可能在没有 OSGi 框架的普通 JVM 中运行。因此没有可用的 BundleContext。
如果您需要测试您的包与 OSGi 的交互,那么您需要在 OSGi 中实际运行测试!否则,请将业务代码与特定于 OSGi 的粘合代码隔离,然后在普通的 JUnit 环境中测试业务代码。实现这种隔离的一个好方法是使用声明性服务。
关于java - 为什么运行 Java 测试时 BundleContext 为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18360006/
我最近开始使用 OSGi 框架。我正在尝试从 Java 主应用程序启动 OSGi 框架。我正在关注这个tutorial将 OSGI 容器嵌入到我的项目中。 下面是我的 Java 主应用程序,我用它来启
有人能说 BundleContext.installBundle 是否是线程安全的吗?我已阅读文档,但找不到。 最佳答案 The documentation明确指出 BundleContext 是线程
我是 Spring DM 的新成员,我想访问 Bundlecontext。我的问题是我有一个 Activator 捆绑包,但它没有 xml 配置文件。我无法触摸这个包,然后我需要访问 BundleCo
以我对 OSGi 的熟练程度,我可以从以下位置获取属性字符串: BundleContext.getProperty(key)(存储在'conf/config.properties') Componen
我编写了一个测试,其中运行一个需要加载 osgi 服务的类。当我开始测试时,每次都会收到 NullPointerException。运行应用程序时它工作正常。我的捆绑上下文为空。我该如何解决这个问题?
我按照本教程将 OSGi 嵌入到我的基于 Maven 的应用程序中。我有一个类文件,用于创建并启动如上所述的框架 here它在那里工作得很好,因为我可以轻松获取 BundleContext。 我已在
我有一个包含多个组件的 OSGi 包,我想激活/停用同一包中其他组件的组件。 我从下面的代码中得到了 BundleContext: import aQute.bnd.annotation.compon
如何在 bean 定义 xml 中传递对 BundleContext 的引用? 最佳答案 你可以这样做: 关于java - 如何在 SpringDM 中将 bundleContext 引用传
我正在使用 pax-exam 加载、激活和访问 osgi 包。 以下源代码是我的 pax-exam 测试,它使用 native 容器使用 pax-exam 2.3 运行。 package fr.xli
我刚刚开始使用 Eclipse RCP 应用程序,它基本上只是提供的“hello world”示例之一。 当应用程序启动时,我想查看我的命令行参数并根据它们启动一些服务。我可以在 IApplicati
我正在尝试以 Java 配置方式在 Spring 中配置 Apache Camel,详见 example .然而,我被困在依赖步骤,因为 BundleContextAware 和(传递地)Bundle
我是 OSGi 新手,在尝试运行此库的示例时遇到问题:https://github.com/jitsi/libjitsi java.lang.NoClassDefFoundError: org/osg
我是一名优秀的程序员,十分优秀!