1

这对我来说是一个奇怪的情况。我们有一个使用 OSGI 的大型项目,我正在修改其中一个包。大多数更改都可以正常工作,除了当我尝试更新代码的一部分以读取某些 XML 时,捆绑包拒绝加载。我收到一条错误消息,指出我的包缺少 jogl 版本 0.0.0 的约束。我的 Bundle 不直接使用 JOGL,尽管它所依赖的包确实使用了 JOG。我们安装了一个 jogl_1.1.1 包,它足以加载所有其他 JOGL 依赖包;

通过注释掉部分代码并进行测试,我发现我可以导入所有适当的类,但是当我尝试使用 DocumentBuilderFactory 解析 XML 时,我收到了关于缺少 JOGL 包的抱怨。即使我将 DocumentBuilderFactory 添加到从未调用过的方法中,也会发生这种情况;尽管我确保 XML-APIS jar 在类路径中,但仍会发生。

我完全不知道如何将 XML 解析连接到 JOGL。0.0.0 的捆绑版本是否有效?我不知道从这里去哪里,所以任何关于这种行为的原因或我可以尝试解决它的建议都表示赞赏。

谢谢

4

1 回答 1

0

就像提到的评论一样,了解您是否正在尝试导入它或者您是否获得 ClassNotFound 会很有帮助。

如果您尝试导入它但它失败了,那么 BND 在分析您的代码时可能会有点困惑。如果是这种情况,我建议您在清单中明确声明您的导入。(至少作为尝试了解有关该问题的更多信息的临时解决方案)。

如果是 ClassNotFound,那就很奇怪了。我注意到 JOGL 使用 DocumentBuilderFactory。我开始进入疯狂的猜测领域,但 JOGL 可能在加载/实现 DocumentBuilderFactory 方面做的不好,并且导致多个捆绑包出现问题。

最后,您是否尝试过创建一个虚拟捆绑包,该捆绑包具有一个调用 DocumentBuilderFactory 的类,以查看是否存在相同的问题?

于 2011-07-04T04:16:49.600 回答