【问题标题】:Bundle not get activated after installing to Pax-Exam container安装到 Pax-Exam 容器后捆绑包未激活
【发布时间】:2015-08-18 11:25:25
【问题描述】:

我正在将一个 OSGi 包安装到测试类中的 Pax-Exam 容器中,以下是我的代码段。

@Configuration
public Option[] config() {

    return options(
 mavenBundle().artifactId("sample-bundle").groupId("org.sample.code").versionAsInProject(),

我的 bundle Activator 中有一个服务注册,如下所示。

bundleContext.registerService(TestCode.class.getName(), testClassInstance, null);

调试测试用例后,发现上面的bundle没有被激活(状态编号32),它处于已解决状态(状态编号4)。但是,在我从 bundle 的 start() 方法中删除上述服务注册后,bundle 被成功激活。

知道这里出了什么问题吗?

【问题讨论】:

    标签: osgi pax-exam


    【解决方案1】:

    也许激活器中存在异常。通常这些错误不会显示在日志中。在它周围使用 try catch 并处理异常。 除此之外,我发现有时通过在测试用例中抓取并启动你的包来获得更好的错误消息。

    【讨论】:

    • 是的。就是这样。在提供捆绑包之前,我必须设置一些设置。有没有我可以实现的注释?..在调用@configuration注释之前调用设置方法?..
    • 这取决于您需要设置什么。你能澄清一下你需要提供什么吗?
    • 必须设置一些环境变量、系统属性等。这些是激活捆绑包所必需的。在进行配置之前,我在配置中调用了一个方法。它目前正在工作,但不确定正确的做法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 2018-12-22
    相关资源
    最近更新 更多