3

我知道这有点具体,但我已经尝试了我能想到的一切。我正在使用 pax-exam 运行一些集成测试,并且日志记录应该使用 pax-logging。

这在直接运行 felix 容器时工作正常,但如果我通过 pax-exam 启动它,pax-logging 永远不会被配置(它没有bundles.configuration.locationvm proeperty,所​​以它找不到services/org.ops4j.pax.logging.properties)。

我试图设置它但似乎不起作用的方式是使用:

@Configuration
public Option[] configuration() throws IOException {
    Option[] options = new Option[]{
        vmOption("-Dbundles.configuration.location=mypath)
    }
    return options;
}

我会很感激你的任何建议。非常感谢!

4

1 回答 1

5

一些可能有帮助的评论:

  1. Pax Logging 是 Pax Exam 提供的默认日志记录解决方案,但您可以使用现成的 SLF4J 和任何后端(如 logback)覆盖它,有关更多详细信息,请参阅本文。我发现这更容易使用。

  2. 我不确定该bundles.configuration.location属性应该针对哪个捆绑包或服务。这看起来像 Pax ConfMan,它不是由 Pax Exam 自动配置的,因此除非您自己处理,否则该属性不起作用也就不足为奇了。

  3. 通过 Pax Exam 选项设置系统属性的首选(但功能等效)方法是systemProperty("foo").value("bar").

于 2012-08-18T07:44:47.233 回答