`
sukaye
  • 浏览: 1317 次
社区版块
存档分类
最新评论

struts2 升级问题

阅读更多

struts2 升级问题

 

最近为了安全问题,将一系统的struts2.2.1升级到最新版本struts2.3.24。

 

主要方法是 先下载 struts-2.3.24.1-lib 包,再和项目的lib进行比较,找两者共同拥有的同名jar包,每个同名jar包只保留拥有最新版本号的那个。

 

接下就是修改相关xml文件的文件头,如将struts.xml的文件头修改为

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

之后启动应用,出现不少错误,但有些出错在网上可以很找到相关的解决方法,但有一个出错费了我很多的时间,在网上也没有搜索到解决方法,还好最后解决了,所以就记录下来。

 

报错信息:

Unexpected Exception caught setting 'xxx' on 'class com.opensymphony.xwork2.ActionSupport: Error setting expression 'xxx' with value ['xxx', ]

根据这个错误信息 Unexpected Exception caught setting 'xxx'  ,我查看了相关的java文件里的 'xxx' 参数是否有对应的set方法,但是java文件里有对应的set方法。这下我只能求助google了,网上也有出现这种错误,但解决方法不能处理我的问题。

 

最诡异的是最个:

Unexpected Exception caught setting '_' on 'class com.opensymphony.xwork2.ActionSupport: Error setting expression '_' with value ['1457409527229', ]

 

这个诡异就在于出现了 ‘_’ 这个参数名,查看了源文件,请求链接中是没有包含这样的参数名的,请求链接类似 

https://localhost/person!getInfo?personId=xx&_=1457409527229

就是后面这一 &_=1457409527229 串无中生有才让我感到奇怪。(后来才知道是使用了 jquery ajax 无缓存会自动添加后面这一窜。但这不是造成错误的原因,我把时间浪费在设置拦截器上,对参数进行过滤,结果也没用。)

 

在网上找不到答案后,重新看了一下所有发生错误的请求链接,结果发现几个发生错误的链接都类似

https://localhost/person!getInfo? 这样(用!调用方法)

果然是这个问题所造成的,终于找到原因所在。

我在 struts.xml 文件上加上

  1. <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
这一句,应用正常运行没有出现类似

Unexpected Exception caught setting 'xxx' on 'class com.opensymphony.xwork2.ActionSupport: Error setting expression 'xxx' with value ['xxx', ] 

这样的错误。(但升级之前是没有这一句的,而且项目是能正常运行的。)

 

但依然出现

Unexpected Exception caught setting '_' on 'class com.opensymphony.xwork2.ActionSupport: Error setting expression '_' with value ['1457409527229', ] 

这样的错误,但这个无关紧要,不影响系统正常运行,如果你不想看到它,可以把struts2的开发模式关闭。 

 

 

http://sukaye.iteye.com/blog/2283272

 

分享到:
评论

相关推荐

    Struts2升级到2.5.30,问题解决及过程记录

    在本文中,我们将探讨将Struts2从旧版本升级到2.5.30的过程中可能遇到的问题及其解决方案。 升级Struts2到2.5.30的主要目标是利用新版本提供的增强功能和安全补丁。Struts2的每个新版本通常会包含对前一版本的兼容...

    struts2.3.24升级2.5.26.zip

    升级前,检查所有依赖的库和插件,确保它们与新版本的Struts2兼容,因为某些旧的API可能会被弃用或改变。 2. **升级指南**:查阅官方的升级指南,了解详细的步骤和变更。这将帮助你了解从2.3.24到2.5.26的具体迁移...

    struts2漏洞升级jar包

    标签"struts2漏洞"、"struts2升级"和"struts2补丁"进一步强调了这次更新的目的:修复已知的安全漏洞,通过升级到更高版本来提高应用安全性,并应用特定的补丁来解决已知问题。 从压缩包子文件的文件名称列表"struts...

    struts2从2.3.26升级2.3.34的文档

    以上步骤概括了从Struts2 2.3.26升级到2.3.34的主要过程。每个项目都有其特定的环境和需求,因此实际操作时可能需要根据具体情况进行调整。遵循这些步骤,可以确保顺利地完成升级,同时享受到新版本带来的改进和优势...

    Struts2漏洞2.0.xx升级为Struts-2.5.12步骤

    本教程将详细解释如何将Struts2的2.0.xx或2.3.28.1版本升级到更为安全的2.5.12版本。 **1. 漏洞概述** 在Struts2的早期版本中,尤其是2.0.xx和2.3.28.1,存在一个名为CVE-2017-9791的安全漏洞,这是一个远程代码...

    struts2漏洞升级

    通常,Struts2的安全漏洞主要涉及Action、Result、Interceptor等核心组件,或者是OGNL(Object-Graph Navigation Language)表达式中的安全问题。 在Struts2的历史中,有几次著名的漏洞事件,如CVE-2017-5638(S2-...

    Struts2.2 升级到Struts2.3

    Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。Struts2.2到Struts2.3的升级是一个重要的更新过程,涉及到多个方面的改动和优化,包括性能提升、安全增强以及新特性的引入...

    Struts升级到Struts2.3.35

    北京时间8月22日13时,Apache官方发布通告公布了Struts2中一个远程代码执行漏洞(cve-2018-11776)。该漏洞可能在两种情况下被触发,第一,当没有为底层xml配置中定义的结果设置namespace 值,并且其上层动作集配置...

    struts 2 升级所需jar 包集合(升级到2.3.32)

    为了应对这些高危漏洞,开发者需要尽快将Struts 2框架升级到最新版本。在这个案例中,提供的jar包集合是针对升级到Struts 2.3.32版本的。以下是每个jar包的作用: 1. `freemarker-2.3.23.jar`:FreeMarker是一个...

    struts-2.3.35 升级jar包

    Struts 2.3.35版本包含了所有必要的jar包,用于将现有的Struts 2应用程序从旧版本升级到这个更安全的版本。这一步通常涉及到替换Web应用中的旧jar文件,以确保所有的功能与最新的安全补丁兼容。 在进行Struts 2框架...

    struts2.3.32版本升级附升级步骤

    Apache官方已针对该漏洞发布安全公告,ApacheStruts 2.3.5 – 2.3.31版本及2.5 – 2.5.10版本存在远程代码执行漏洞(CNNVD-201703-152 ,CVE-2017-5638)。该漏洞是由于上传功能的异常处理函数没有正确处理用户输入...

    struts2升级jar包3

    struts2 升级 2.3.15.1 struts2-jasperreports-plugin-2.3.15.1.jar

    Struts2.3.15.1版本升级到2.3.32详细流程

    通过上述步骤,您可以有效地将Struts2从2.3.15.1版本升级到2.3.32版本,从而避免了S2-045和S2-046等已知的安全漏洞带来的威胁。此外,定期关注并及时更新所使用的开源库版本,对于保障系统的安全稳定运行至关重要。

    struts2升级到Struts2 2.3.32相关jar包

    9. **社区支持**:Struts2拥有活跃的社区,升级到新版本意味着可以获得最新的社区支持和技术解答,帮助解决可能出现的问题。 在升级过程中,你将需要用到"Struts2 2.3.32相关jar包",这个压缩包包含了升级所需的...

    struts2.3.16升级到struts2.5.13

    4. **依赖管理**:升级过程中,需要更新所有相关的Struts2依赖项,如struts2-core、struts2-convention-plugin等。同时,确保其他依赖库(如Spring、Hibernate等)与新版本的Struts2兼容。 5. **拦截器链调整**:...

    struts-2.5.16升级jar包.zip

    Struts 2的升级不仅涉及jar包的替换,还需要关注其版本带来的新特性、改进和已知问题,以便充分利用新版本的优势并避免潜在风险。对于开发者来说,了解每个版本的变更日志和官方文档是非常重要的,这能帮助他们更好...

    struts2从2.3.15.1升级到2.3.35

    2. **依赖库更新**:升级时,需要检查并更新所有与Struts2相关的依赖库,如OGNL(Object-Graph Navigation Language),因为它们可能与新版本的Struts2存在兼容性问题。 3. **配置更改**:Struts2的配置文件`struts...

    struts2漏洞s2-045,不升级jar版本的修补方法,已验证.docx

    然而,Struts2 中存在着一些漏洞,例如 S2-045 漏洞,该漏洞可能会导致严重的安全问题。今天,我们将讨论如何修复 Struts2 漏洞 S2-045 而不升级 jar 版本。 漏洞概述 S2-045 漏洞是一个严重的安全漏洞,影响 ...

    Struts2最新漏洞升级2.3.32版本

    struts2-convention-plugin-2.3.32.jar struts2-core-2.3.32.jar struts2-spring-plugin-2.3.32.jar xwork-core-2.3.32.jar 2、删除上面原有的低版本jar 3、修改 WEB-INF\classes 目录下struts.xml 文件,...

    struts2 自定义标签

    Struts2作为一款流行的Java Web框架,极大地简化了MVC应用的开发。在Struts2中,自定义标签是提高代码可读性和可维护性的重要工具。本文将深入探讨Struts2自定义标签的实现机制、优点以及如何在实际项目中进行应用。...

Global site tag (gtag.js) - Google Analytics