如何调试OSGi应用程序?

时间:2015-09-12 19:35:38

标签: eclipse debugging osgi apache-felix equinox

我真的需要通过使用断点来调试我的代码,但这似乎是一个OSGi容器的复杂任务。

我有Eclipse和Felix(两者都是最新的)。我的项目是一个原始的OSGi项目,我没有使用PDE,只是maven bundle插件生成bundle然后将它们复制到felix中的/ bundle文件夹,然后我执行java -jar bin / felix.jar并运行项目。所以不要大惊小怪。

但是我无法以这种方式调试应用程序。我试过阅读文档(http://felix.apache.org/documentation/development/integrating-felix-with-eclipse.html),但它们已经过时/破碎,无法让它们发挥作用......

我该如何调试?我是否必须避免使用OSGi,因为不支持调试......?

谢谢!

2 个答案:

答案 0 :(得分:3)

您是否考虑过使用像bndtools这样的IDE工具来进行调试?您可以从bundle文件夹创建存储库,并使用bndrun文件运行它们。这为您提供了Eclipse中的调试环境,听起来就像您想要的那样。 The bndtools website is here.

Bndtools也做了很多,但听起来好像你对现有的Maven构建感到满意。本教程将通过设置基本工作区来运行,但您感兴趣的主要内容是Running a framework

答案 1 :(得分:2)

使用以下参数启动felix以启用远程调试。

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 -jar bin/felix.jar

您可以通过Eclipse远程调试连接到Felix容器。

  1. 运行
  2. 调试配置
  3. 远程Java应用程序
  4. 选择要调试的项目/来源项目
  5. 将端口配置为1044
  6. 点击调试
  7. 触发调试器