dou*_*ugh 5 java tomcat web-applications class classloader
/tomcat/lib目录中,我有课程SharedClass(因此与所有网络应用程序共享).WEB-INF/lib我上课了LocalClass.SharedClass有参考LocalClass.在我的网络应用程序中,我尝试创建一个实例SharedClass但它失败并显示以下消息:
NoClassDefFoundError:LocalClass.
由于SharedClass是共享的并且LocalClass是我的网络应用程序的本地,我希望它可以工作,但事实并非如此.
我怀疑是SharedClass由Tomcat父类加载器LocalClass加载并由Web App类加载器加载.由于SharedClass父进程加载,我假设所有依赖项也必须由父进程加载.因此,父级无法找到LocalClass并抛出错误.
这有意义吗?有没有办法解决这个问题(没有编写我自己的类加载器)?
ClassLoaders是分层的.类加载器具有父级,并查看其父级的类.反之则不然.因此,由webapp的类加载器加载的类可以访问由公共Tomcat类加载器(其父级)加载的类,该类可以访问JRE类(Tomcat的类加载器的父级).
有关更多详细信息,请参阅Tomcat文档和ClassLoader javadoc.
| 归档时间: |
|
| 查看次数: |
1965 次 |
| 最近记录: |