struts2.0升级到2.3的问题
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
欢迎转载,请注明出处:亲亲宝宝
StrutsPrepareAndExecuteFilter后有没有.ng 另外,struts2的核心是这个过滤器吗?这个过滤器究竟负责做什么的?
struts1.x为什么没有漏洞?
这几个struts2核心包哪个存在漏洞多?
是否可以自己修改jar包中的漏洞?
[回复]
admin 回复:
29 8 月, 2013 at 18:50
@struts2_newbie, 具体代码没有研究,我也是从网上整理的。
[回复]