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.
更换 ,
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增加
Dispatcher
发布评论