如何在Equinox中调试OSGI类加载器问题?

时间:2011-12-01 16:31:14

标签: java osgi equinox

我正在尝试为RestEasy 2.2.1.GA创建OSGI包。 但是,我的RestEasy捆绑包的测试客户端捆绑包在尝试实例化特定类型时失败。

此问题特定于Equinox容器,但在试图弄清楚出了什么问题时我遇到了问题。我无法将问题缩小到导致问题的实际类型。可能是一个有问题的类的字段与另一个类型,或继承链中的其他类型是不可能的,但哪一个?

有没有办法获得有关此问题的更多信息?在这一点上,找不到类的异常对我没有帮助。我怎样才能发现问题的根源?在编译时,Eclipse不会抱怨找到有问题的类型,并且所有已部署的插件在equinox控制台下报告为“已解决”。

1 个答案:

答案 0 :(得分:3)

你需要知道发生了什么:

  1. 检查ClassNotFoundException发生的位置。它指向(在大多数情况下)哪个bundle无法加载类。请注意一些捆绑包,即扩展程序,它们试图代表其他捆绑包加载类。

  2. 使用Equinox console

  3. 查找班级所在的位置
  4. 到目前为止,您应该非常了解这些事情应该如何运作。现在,您需要找出它们不起作用的原因。不幸的是,我找不到用于检查解析器工作的良好调试工具。您可以尝试使用由org.eclipse.osgi记录的扩展调试信息(在启用时)来推断您的问题(如果它在解析器中)。

    What org.eclipse.osgi debug options are available?(可能不是最新的)

    How to enable them