背景
公司要求整体使用jdk8,没办法,只能升级了。
参考文献
参考文献解决不了的改动点
这里面是踩过的一些坑,每个项目不尽相同,所以本文只是一个备份,万一遇到坑了,还能快速爬起来
1. web.xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
//请使用下面这个
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
2. struts-路由.xml
替换声明 struts-2.0.dtd => struts-2.5.dtd
3. struts.xml 配置文件,这里是重点
<package name="default" extends="struts-default, json-default" strict-method-invocation="false">
//strict-method-invocation="false" 和下面这行,酌情添加
<global-allowed-methods>regex:.*</global-allowed-methods>
//如果静态资源找不到,可以配置这个
<constant name="struts.action.excludePattern" value=".*(.jpg|.png|.gif|.js|.css)$"/>
</package>
4. pom升级
仅供参考,可以用mavenHelper确认是否都是匹配版本的
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.20.0-GA</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>2.0</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>struts</groupId>
<artifactId>struts</artifactId>
</exclusion>
<exclusion>
<groupId>velocity</groupId>
<artifactId>velocity</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.33</version>
<exclusions>
<exclusion>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</exclusion>
</exclusions>
</dependency>
maven-compiler-plugin 的source和target都升级到1.8
下面是选用
<spring.version>3.2.18.RELEASE</spring.version>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.13</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.13</version>
</dependency>
//如果你的系统还有这个asm,要注意不要相互影响
<exclusions>
<exclusion>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
</exclusion>
</exclusions>
最后
预祝你一次性点亮系统!!!