1、web.xml中指定位置 此处,我只修改了struts.xml文件的位置,structs默认是从WEB-INF的classes目录下加载配置文件的,对应打包后的路径,自己根据需求修改即可 <!-- struts配置 --> <filter> <filter-name>struts</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>config</param-name> <param-value>struts-default.xml,struts-plugin.xml,struts/struts.xml</param-value> </init-param> </filter> <filter-map.... 有更新! struts修改配置文件位置 程序人生
1、错误信息 2、问题跟踪及处理 可以看到,这个方法传递了一个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就正常了 有更新! struct2在tomcat运行报错--java.lang.NoSuchFieldException resourceEntries 程序人生