【发布时间】: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