【发布时间】:2014-06-14 09:21:38
【问题描述】:
我们有 2 个不同的 OSGI 包。
在第一个包中存在将 JSON 字符串解析为 MyClass.MyClass 由 Gson 注释注释的类。MyClass 位于第二个包中。我有很多问题。最终在调试模式下我注意到了
MyClass.class.getDeclaredField("fieldName").getAnnotation(AnnotationType.class)
返回空值。
因此 CQ5 在某处丢失了注释。
我创建了一个全新的项目,将解析器类和 MyClass 复制到此。这段代码确实可以正常使用。
最终我们了解到“MyClass”和 Gson 是由不同的类加载器加载的,在我们开始加载 Gson 相同的类加载器后,问题已得到解决。但这是非常笨拙的解决方案。
你怎么看?
它如何更优雅地修复它?
【问题讨论】:
标签: java osgi classloader aem apache-felix