小编dou*_*ugh的帖子

是否所有类的依赖项都由同一个类加载器加载?

  • 在我的/tomcat/lib目录中,我有课程SharedClass(因此与所有网络应用程序共享).
  • 在我的网络应用程序中,WEB-INF/lib我上课了LocalClass.
  • SharedClass有参考LocalClass.

在我的网络应用程序中,我尝试创建一个实例SharedClass但它失败并显示以下消息:

NoClassDefFoundError:LocalClass.

由于SharedClass是共享的并且LocalClass是我的网络应用程序的本地,我希望它可以工作,但事实并非如此.

我怀疑是SharedClass由Tomcat父类加载器LocalClass加载并由Web App类加载器加载.由于SharedClass父进程加载,我假设所有依赖项也必须由父进程加载.因此,父级无法找到LocalClass并抛出错误.

这有意义吗?有没有办法解决这个问题(没有编写我自己的类加载器)?

java tomcat web-applications class classloader

5
推荐指数
1
解决办法
1965
查看次数

标签 统计

class ×1

classloader ×1

java ×1

tomcat ×1

web-applications ×1