tomcat 8 加 struts2的 java.lang.NoSuchFieldException: resourceEntries
2017-03-23 09:33
661 查看
google发现已经有人把这个bug提交给了apache,issue地址,具体原因就是
Tomcat8 introduce super class WebappClassLoaderBase and moved field “resourceEntries” to it, so WebappClassLoader.class.getDeclaredField(“resourceEntries”) will throw NoSuchFieldException.
Tomcat8的类加载器WebappClassLoaderBase移除resourceEntries属性。
Tomcat8的类加载器WebappClassLoaderBase移除resourceEntries属性。
寻找解决方案
看来是源码的问题,把容器换成tomcat7的确可以解决问题,可是身为一个强迫症泛滥的码农怎么受得了呢。于是Github上翻看源码(fix地址),一个叫lukaszlenart的家伙已经提交了修复bug的代码。重新编译struts
既然有人fix了代码,把源码下下来再编译一个新的xwork-core-2.3.20.jar那么就OK了。下面编译struts要用到Maven(Maven官网)。解压安装包。设置Maven环境变量
1) MAVEN_HOME=G:\apache-maven-3.3.1
2) PATH=%MAVEN_HOME%\bin
cmd里测试一下是否安装成功mvn -version2) PATH=%MAVEN_HOME%\bin
编译xwork-core
进入G:\struts-2.3.20\src\xwork-core(根据自己的目录修改)目录输入mvn package -Dmaven.test.skip=true
相关文章推荐
- 在tomcat8.0上运行ssh项目是出现java.lang.NoSuchFieldException: resourceEntries
- 解决警告: couldn't clear tomcat cache java.lang.NoSuchFieldException: resourceEntries
- java.lang.NoSuchFieldException: resourceEntries
- [struts2]2.3.14 json-plugin 存在bug<java.lang.NoSuchFieldException: DEFAULT_PARAM>
- java.lang.NoSuchFieldException: resourceEntries 异常解决
- 上传文件-java.lang.NoSuchFieldException: resourceEntries
- Struts2:java.lang.NoSuchFieldException: resourceEntries at java.lang.Class.getDeclaredField(Class.java:1901)
- java.lang.NoSuchFieldException: resourceEntries
- [struts2]2.3.14 json-plugin 存在bug<java.lang.NoSuchFieldException: DEFAULT_PARAM>
- Could not reload resource bundles java.lang.NoSuchFieldException: cacheList
- ssh整合报错,nested exception is java.lang.NoSuchFieldError: TRACE
- strtus2.3 java.lang.NoSuchFieldException: DEFAULT_PARAM>
- Java Exception: java.lang.NoSuchFieldError
- java.lang.NoSuchFieldException: DEFAULT_PARAM
- nested exception is java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW
- Java反射异常:java.lang.NoSuchFieldException
- java.lang.NoSuchFieldException: mThumbDrawable
- Could not reload resource bundles java.lang.NoSuchFieldException: cacheList
- java.lang.NoSuchFieldException: mThumbDrawable
- exception is java.lang.NoSuchFieldError: INSTANCE