侧边栏壁纸
博主头像
大数互联博主等级

HI,你好

  • 累计撰写 58 篇文章
  • 累计创建 55 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

unit-boot之业务springboot单元更新使用旧基于单元加载类问题与解决

大数互联
2023-11-27 / 0 评论 / 0 点赞 / 16 阅读 / 186 字

当业务的springboot单元(非基于的spring单元)在元数据文件META-INF中导配置了Require-Bundle,然后先更新spring基于单元(业务的springboot单元依赖这个基础的springboot单元),然后再更新业务单元,当涉及到加载的类在springboot基础单元时,注会报ClassCastException,原因是在springboot业务单元加载到了旧的springboot基础单元导致(classloader不一样了)。

关键加载位置

类:org.eclipse.osgi.internal.loader.BundleLoader
方法:findClassInternal
image-1701077052320
META-INF导入项

Require-Bundle: springbase

解决

1:去除元数据文件中的 Require-Bundle 项。
2:采用动态导入配置,在元数据中文件中配置:Dynamicimport-Package: *

0

评论区