struts2 2.3.x升级到struts2 2.5.x 过程

写在之前:

升级到2.5以上版本需要注意:jdk版本必须是1.7或者以上

开始升级

 一: 准备jar包,可以直接去官网下,或者maven仓库下,都可以

 二:替换jar包(以下为替换后,每个项目不同,或多或少的会有偏差)

  

jar包说明:

1、struts2 2.5版本struts2-core包包含了xwork-core,所以此处删除了2.3版本中的xwork-core

2、log4j升级后需要重新新增配置文件log4j2.xml(见文末)

3、注意cglib的版本2.1和2.2会报不同的错

当出现:org.objectweb.asm.ClassWriter.<init>(I)V和org.objectweb.asm.ClassWriter.<init>(Z)V

解决办法:

出现<init>(Z)V将cglib.jar 由2.1版本 改为 2.2

出现<init>(I)V将cglib.jar 由2.2版本 改为 2.1.

4、当出现ClassNotFoundException: org.apache.struts2.dispatcher.ChartResult,你就知道struts2-jfreechart-plugin.jar存在的重要性了

三:修改web.xml,去除.ng(因为2.5的目录变了)

 将<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

 修改后为 <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>

 三、修改struts.xml及相关struts文件

 1、头部信息改为:

 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">

2、如果出现动态方法绑定失败

还需要加配置 <constant name="struts.enable.DynamicMethodInvocation" value="true"/>

3、为提高安全性,2.5还需要在struts.xml中配置

 <global-allowed-methods>regex:.*</global-allowed-methods>

四、修改jsp标签(dtd)

1、将<s:set name 改为<s:set var 

2、<s:property escape改为<s:property escapeHtml

以上基本就是我遇到的坑了,都已经解决。

附件:简单的log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--设置log4j2的自身log级别为warn-->
<configuration status="warn">

    <appenders>
        <console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        </console>

        <RollingFile name="RollingFileInfo" fileName="../logs/guanli/info.log"
                     filePattern="../logs/guanli/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="INFO"/>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>

        <RollingFile name="RollingFileWarn" fileName="../logs/guanli/warn.log"
                     filePattern="../logs/guanli/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="WARN"/>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>

        <RollingFile name="RollingFileError" fileName="../logs/guanli/error.log"
                     filePattern="../logs/guanli/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
            <ThresholdFilter level="ERROR"/>
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>

    </appenders>

     <loggers>
          <logger  name = "org.springframework"  level = "INFO" ></logger>
          <logger  name = "com.opensymphony"  level = "INFO"></logger>
          <logger  name="org.apache.struts2" level="INFO"></logger>
          <root level = "all">
              <appender-ref  ref = "Console"/>
              <appender-ref  ref = "RollingFileInfo"/>
			  <appender-ref  ref = "RollingFileWarn"/>
			  <appender-ref  ref = "RollingFileError"/>
          </root>          
      </loggers>

</configuration>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值