0

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

@Configuration
public Option[] config() {

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

对于上面的示例包,我在我的包激活器中有一个服务注册,如下所示。

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

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

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

4

1 回答 1

1

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

于 2015-08-18T12:29:46.097 回答