【问题标题】:SOLVED - Eclipse 4 product migration from Oxygen to Eclipse 2020-06 : ClassNotFoundException已解决 - Eclipse 4 产品从 Oxygen 迁移到 Eclipse 2020-06:ClassNotFoundException
【发布时间】:2021-03-14 07:39:13
【问题描述】:

我将 Eclipse 4 产品从 Oxygen 迁移到 Eclipse 2020-06。 当某些插件尝试使用反射加载类时,我得到了 ClassNotFoundException。氧气版本的产品一切正常。

以 cxf 为例,即 org.apache.cxf.cxf-core,尝试加载 org.objectweb.asm.ClassWriter 类。

这个类在 org.objectweb.asm 包中。

ClassNotFoundException 的这个问题并不特定于 org.apache.cxf.cxf-core 包。我在其他捆绑包中遇到了类似的问题。

我比较了 Oxygen 版本和 Eclipse 2020-06 版本之间的类加载,但没有发现问题。

两个版本都使用了两个相同的 ClassLoader:

  • org.eclipse.osgi.internal.framework.ContextFinder
  • org.eclipse.osgi.internal.loader.EquinoxClassLoader

两个产品的JDK版本相同:JDK8。

有人在类加载方面遇到过类似的问题吗?

感谢您的帮助

-- 菲利普

【问题讨论】:

  • org.apache.felix.scr 从 4.10 (2018-12) 开始替换 org.eclipse.equinox.ds。您是否已将产品启动级别更新为启动 org.apache.felix.scr?
  • 感谢 cmets。是的,我们将产品从 ds 更新到 scr。我们只是找到了解决方案:插件版本错误。我更新了问题以将其标记为已解决。

标签: osgi eclipse-rcp apache-felix


【解决方案1】:

解决方案: 问题是由于 cxf 插件和 asm 插件之间的版本不兼容。我们通过更新目标平台中的 cxf 版本解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 2017-01-19
    • 2020-10-07
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    相关资源
    最近更新 更多