我如何调试外部 OSGI 包?

How I can debug an external OSGI bundle?

我想调试一个外部 OSGI 包以了解如何与其他包交互,但我不知道该怎么做。

主程序适用于 Karaf 和 OSGI,我可以毫无问题地附加 Netbeans 调试器来调试它。当我尝试调试外部包时出现问题。

外部包是放在程序 deploy/ 文件夹中的 jar 文件,然后安装新的包。 Karaf 向我显示已安装。我也可以作为用户使用这些包。

我可以访问主程序的源代码和我也想调试的包。

我的目标是调试这个包以了解如何与其他包交互,特别是当必须写入数据库时​​触发的事件。

注意:以下远程调试配置已用于eclipse。找到对应的netbeans。

如果您的包在部署文件夹中,那么您只需要在启动 karaf 服务时通过在命令中附加 debug 以调试模式启动 karaf

bin/karaf debug

它将侦听外部程序在默认端口 5005 上连接到它。

Debugging in Karaf

-然后需要去eclipse->运行->调试配置->远程java应用。

在连接选项卡中填写以下信息:

项目:项目名称

Host:您的主机(localhost 如果您的系统是主机)

端口:5005

在源选项卡中,在此调试配置的上下文中添加项目文件。

应用和调试。您的断点将开始工作。

如果你想远程调试 jar。遵循上面相同的 eclipse 配置(不包括 karaf 调试)并从这个答案中获得帮助