Struts2.3升级2.5 记录备份

64 阅读1分钟

背景

公司要求整体使用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>

最后

预祝你一次性点亮系统!!!

image.png