2011-12-01 82 views
3

我正在尝试为RestEasy 2.2.1.GA创建OSGI捆绑包。 但是,我的测试客户端软件包中的RestEasy软件包在尝试检测特定类型时失败。如何在Equinox中调试OSGI类加载器问题?

这个问题是特定于Equinox容器的,但当我试图弄清楚什么地方出错时,我陷入了困境。我无法将问题缩小到导致问题的实际类型。或许一个有问题的类的领域与另一个类型或继承链中的其他类型是不可测的,但是哪一个?

有没有办法获得有关该问题的更多信息?在这一点上,一个没有发现异常的类并不能帮助我。我如何发现问题的根源?在编译期间,Eclipse不会抱怨发现有问题的类型,并且所有部署的插件都会在Equinox控制台中报告为“已解决”。

回答

3

你需要有一个想法发生了什么:

  1. 检查哪来的ClassNotFoundException正在发生的事情。它指出(在大多数情况下),哪个包不能加载类。请注意一些捆绑包,它们是扩展器,它们试图代表其他捆绑包加载类。

  2. 寻找到类使用Equinox console

  3. 现在,你应该拥有的事情应该如何工作得很好的理解定位。现在,你需要找出为什么他们不工作。不幸的是,我找不到检测解析器工作的好调试工具。您可以尝试使用广泛的调试信息推断您的问题(如果它在解析器中),该信息在启用时由org.eclipse.osgi记录。

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

    How to enable them

+0

Danail,你认为是什么几乎是唯一的选择。虽然我不得不承认,我最初的尝试似乎没有奏效。无论如何感谢 – mahonya

+1

在OSGi中调试类加载问题要求您对应用程序模块有良好的理解,并且对所使用的框架有基本的了解。这并不容易,但它可以做到:) –