如何调试OSGi服务

时间:2014-07-03 02:54:30

标签: intellij-idea osgi pax-exam

如果在pax考试的帮助下涉及并测试了多个服务,我该如何启用和调试。

我有一组服务编排和提供功能。这些服务中的每一个都具有模拟其他服务的测试。除此之外,还有通过pax考试完成的集成测试。

但是当我通过IDE:intelliJ挂钩调试器并运行测试时,调试器不会被挂钩。我应该在这里使用远程调试吗?如果是这样,我应该在pax考试中进行配置吗?

2 个答案:

答案 0 :(得分:1)

使用Pax Exam的远程或卡拉夫测试容器,您需要进行远程调试。使用Native Test Container,所有测试都在同一个VM中运行,因此普通断点应该可以正常工作。

除非您需要完整的类加载器隔离,否则通常首选Native Container。

答案 1 :(得分:0)

您没有指定您正在使用的Pax考试版本。但是,通常Pax Exam在运行测试时会启动一个单独的JVM,这就是为什么调试器不会在您定义的断点处停止的原因。您需要首先告诉Pax Exam启动启用了远程调试的新JVM。然后,您可以让IDE连接到该远程调试器。 Pax考试网站上有一个关于此问题的常见问题解答:

https://ops4j1.jira.com/wiki/display/paxexam/FAQ#FAQ-WhydoestheJavadebuggernotstopatabreakpointIsetinmyPaxExamJUnittest