struts2升级-常见错误

更新时间:2023-10-27 21:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

重要:经过详细测试,由于xwork升级导致javaBean的写法非常严格,例如: 1.

Private Qname Qname; (错误:javaBean首字母不能

大写) 2.

Private Qname qName; (错误:首字母小写,第二个字

母大写,javaBean支持该写法,但是升级版xwork不支持该反射) 3.

可以看出,新版本的javaBean要求非常严格,其中第2种写法是常见的,因此版本升级后可能会出现大面积参数传递失败。 如果是新项目,建议直接使用最新的包开发,如果是现有项目,不建议升级。

============================================ 1、缺少、更换jar包

Caused by: java.lang.NoClassDefFoundError: Lcom/opensymphony/xwork2/FileManager; 更换 xwork-core-2.3.15.1.jar

Private Qname qname;(正确)

Caused by: java.lang.NoClassDefFoundError: javassist/ClassPath 缺少 javassist-3.11.0.GA.jar

java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils 缺少 commons-lang3-3.1.jar

java.lang.NoSuchMethodError:

ognl.SimpleNode.isEvalChain(Lognl/OgnlContext;)Z 更换 ognl-3.0.6.jar

java.lang.NoClassDefFoundError:

org/objectweb/asm/commons/EmptyVisitor 更换 asm-3.3.jar

缺少 asm-commons-3.3.jar

Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.(I)V 更换 cglib-2.2.jar,cglib-nodep-2.2.jar

2、代码类更新

1) XXXXX Exception - 》 Exception (由于很多的异常被包捕抓了,所以有try、catch报

错直接使用Exception)

2) regexFields. Expression –》 regexFields. regexExpression (新版本已经没有了expression)

3、配置更改

1) 新版本使用了严格的参数控制,若使用的参数没有声明get、set则直接报错,但按照开

发习惯,使用较少的参数不会声明,而是直接在request里面取得,屏蔽报错,需要更改struts配置:

2) 出现strust.xml配置错误,一般为中划线和大小写规范错误,由于新版本不支持中划线

写法,所有中划线需要改写成为大写小的写法。

3) Caused by:

com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=java.lang.String, name='actionPackages'] in public void

org.apache.struts2.config.ClasspathPackageProvider.setActionPackages(java.lang.String).

尝试去除 struts2-codebehind-plugin.jar 或者

在xml增加

struts

org.apache.struts2.dispatcher.FilterDispatcher

actionPackages

com.logo.group.webapp.action,com.logo.group.harvest.action

本文来源:https://www.bwwdw.com/article/ckq2.html

Top