https://blog.csdn.net/weixin_34014555/article/details/90689913:主流web容器(jetty,tomcat,jboss)的classloader机制对比和相关问题分析
上面的情形可以说基本都是对应的class , method等找不到,或者类冲突等问题,一看就是比较典型的classloader引发的问题。
下面就来看看对容器classloader机制的分析和对比,相信大家了解了相关classloader机制微妙的区别后,基本也能解析这一类问题了
(1)jboss4.05 classloader机制
(2)tomcat6.0.30 classloader机制
(3)jetty7.1.20 classloader机制
理清了sealed的含义,再看一下出错的堆栈:com.sun.media.jai.util,这个类是jai相关处理
- jai_core.jar
- jai_codec.jar
- jai_imageio.jar
几个jar包的META-INF/MANIFEST.MF中都定义了sealed :true。而我们的应用中刚好有两个jar包,那为什么在jboss运行中没问题,jetty运行却出了问题呢?
我的做法是:删除jai_xxx.jar,重新打包war包,放到jetty的webapp下