二十二、ClassNotFound与类加载的全盘委托机制

2020-11-01  本文已影响0人  此间有道

一、问题描述

EDI测试环境运行时,在JSF调用时报ClassNotFound,而在商家目录B下有该依赖,通过远程断点定位到并没有走EDI自定义的类加载器。

二、原因

JSF调用的参数类A是EDI平台类,由应用类加载器加载。而A中某个属性是B类,其未在应用类加载器的扫描目录A而在商家目录B下,已由EDI自定义类加载器CompositeClassLoader加载。
由于类加载的全盘委托机制,导致在A中使用到B时,由加载A类的类加载器去加载B,导致加载不到,引发ClassNotFoundException。

三、解决方案

把B所在的jar包放到目录A下。

类继承层次
上一篇 下一篇

猜你喜欢

热点阅读