可以看到,这个方法传递了一个Class对象和类加载器和一个字段给clearMap方法
进入clearMap方法,方法根据class对象获取属性,此时报出了属性找不到的错误
打开tomcat的源码查看这个被反射的类org.apache.catalina.loader.WebappClassLoader(tomcat源码地址)
在这个类中发现,他继承了org.apache.catalina.loader.WebappClassLoaderBase,自己本身没有定义属性
进入WebappClassLoaderBase类中,可以找到resourceEntries字段
查看WebappClassLoaderBase的注释信息发现从7.0.64往后的版本,添加了WebappClassLoaderBase用来作为类加载器
此时有两个解决方案,一是对structs版本升级,但是这样的话,对应的其他依赖版本也要升级,代价太大,第二个方法较为简单,直接更换tomcat版本使其版本号<7.0.64即可,我换了7.0.63就正常了