【发布时间】:2016-01-21 17:55:09
【问题描述】:
我正在尝试 launch the Felix OSGI Framework 使用 AutoProcessor.process(...) 加载我的 OSGI 包。我已经使用felix.auto.deploy.dir 属性指定了包含捆绑包的目录。
当该目录为空时,我根本没有收到 Felix 的任何消息。当其中有捆绑包时,我会得到一个不太有用的堆栈转储。
如何告诉 Felix 框架输出日志/调试信息?我真正想要的是 AutoProcessor 在堆栈转储发生时告诉我它正在处理哪个包。
我尝试将felix.log.level 设置为 4;我尝试设置org.osgi.framework.FrameworkListener 和org.osgi.framework.BundleListener;我尝试用felix.log.logger 指定Logger;但菲利克斯仍然固执地沉默。
那么秘诀是什么?
【问题讨论】:
-
我开始从
felix.auto.deploy.dir中一一删除捆绑包。但问题依然存在。调试器显示每次都发生相同的 - 未报告的 - 错误。所以我得出结论,这不是我使用的捆绑包的问题。我用谷歌搜索了错误(我认为是BundleEvent.<init>(...) is missing)并找到了解决方案:我的依赖项中有两个org.osgi.cores(我想要的一个,org.apache.felix.prefs包含的一个),所以我删除了一个,然后一切正常。好吧,实际上我继续处理下一个问题,但那是程序员的生活:-) -
我没有回答原来的问题。
标签: debugging logging osgi apache-felix