首页 > java, 软件设计 > struts2.0升级到2.3的问题

struts2.0升级到2.3的问题

2013年3月23日 亲亲宝宝 发表评论 阅读评论

struts2.0被发现有严重漏洞,需要升级到新版本,更换struts2的核心包后出现问题。

1、java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/logging/LoggerF

更换xwork.jar包后解决;

2、struts的配置文件报错redirect-action;

解决办法:Result type=“redirect-action”更改为redirectAction;

3、ActionContextCleanUp <<< is deprecated! Please use the new filters!        *

http://struts.apache.org/2.x/docs/webxml.html

解决办法:修改web.Xml中FilterDispatcher为StrutsPrepareAndExecuteFilter。

FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.

StrutsPrepareAndExecuteFilter是自2.1.3开始就替代了FilterDispatcher的.

StrutsPrepareAndExecuteFilter是StrutsPrepareFilter和StrutsExecuteFilter的组合。

这样的改革当然是有好处的.

为什么这么说.? 应该知道如果我们自己定义过滤器的话, 是要放在strtus2的过滤器之前的, 如果放在struts2过滤器之后,你自己的过滤器对action的过滤作用就废了,不会有效!除非你是访问jsp/html!

那我现在有需求, 我必须使用Action的环境,而又想在执行action之前拿filter做一些事, 用FilterDispatcher是做不到的.!

那么StrutsPrepareAndExecuteFilter可以把他拆分成StrutsPrepareFilter和StrutsExecuteFilter,可以在这两个过滤器之间加上我们自己的过滤器.!

4、java.lang.ClassNotFoundException: javassist.ClassPool

在maven repo里面,struts2-core 依赖于ognl, ognl运行时需要”javassist”但却不包含在tomcat里面,因此,需要自己加上javassist-3.11.0.GA.jar。

 

完成升级后所有需要更换的包:

struts2-core-2.0.6.jar,struts2-spring-plugin-2.0.6.jar,xwork-2.0.1.jar,ognl-2.6.11.jar,javassist-3.11.0.GA.jar,commons-lang3-3.1.jar

分类: java, 软件设计 标签: , 9,182 次阅读
原文链接:http://www.wenhq.com/article/view_745.html
欢迎转载,请注明出处:亲亲宝宝
  1. struts2_newbie
    2013年8月17日18:42 | #1

    StrutsPrepareAndExecuteFilter后有没有.ng 另外,struts2的核心是这个过滤器吗?这个过滤器究竟负责做什么的?
    struts1.x为什么没有漏洞?
    这几个struts2核心包哪个存在漏洞多?
    是否可以自己修改jar包中的漏洞?

    [回复]

    admin 回复:

    @struts2_newbie, 具体代码没有研究,我也是从网上整理的。

    [回复]

  1. 本文目前尚无任何 trackbacks 和 pingbacks.