2024年4月17日发(作者:)

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

1. Private Qname Qname; (错误:javaBean首字母不能大写)

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

支持该写法,但是升级版xwork不支持该反射)

3. Private Qname qname;(正确)

可以看出,新版本的javaBean要求非常严格,其中第2种写法是常见的,因此版本

升级后可能会出现大面积参数传递失败。

如果是新项目,建议直接使用最新的包开发,如果是现有项目,不建议升级。

============================================

1、缺少、更换jar包

Caused by: sDefFoundError:

Lcom/opensymphony/xwork2/FileManager;

更换

Caused by: sDefFoundError: javassist/ClassPath

缺少

sDefFoundError: org/apache/commons/lang3/StringUtils

缺少

MethodError:

Chain(Lognl/OgnlContext;)Z

更换

sDefFoundError: org/objectweb/asm/commons/EmptyVisitor

更换

缺少

Caused by: MethodError:

riter.(I)V

更换 ,

2、代码类更新

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

catch报错直接使用Exception)

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

expression)

3、配置更改

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

照开发习惯,使用较少的参数不会声明,而是直接在request里面取得,屏蔽报错,需要

更改struts配置: 非开发模式。

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

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

3) Caused by:

nerImpl$MissingDependencyException:

No mapping found for

in

dependency [type=,

public void name='actionPackages']

ionPackages(.

String).

尝试去除

或者

在xml增加

struts

Dispatcher

actionPackages

,