今夜,晴,时间,凌晨两点
背景
本码农在敲代码时遇到一个问题,就是页面用Ajax传输json数据到后台时,Struts框架使用json-default,在调用模型后返回到页面时,页面获取不到返回信息,报org.apache.commons.lang.xwork.StringUtils错误。然后捏,我去网上看了一下,全都是说,所用的jar包里面没有StringUtils.class(我用的xwork-core-2.3.20.jar-较新版)。之后我去jar包里找了找,的确没有,那怎么办呢?没有结果返回到页面,那不是白做啦,而网上是说可以把xwork-core-2.3.20.jar换成xwork-core-2.1.6.jar,因为xwork-core-2.1.6.jar里面就有StringUtils.class。我高兴地去csdn下载频道花了2积分去下了一个,换了之后,发现问题又来了。因为我的Struts框架依赖xwork-core-2.3.20.jar,而如果使用xwork-core-2.1.6.jar,tomcat启动时找不到xwork-core的jar包。也就是说,如果要替换,struts2-core-2.3.20.jar,这些包都要换。那就更麻烦了。后来,绞尽脑汁,想到一个办法,就是把xwork-core-2.1.6.jar里的StringUtils.class复制到xwork-core-2.3.20.jar。想法是大胆了点,但是效果不错,居然成功了。完美运行!下面就说说如何具体复制该字节码文件。过程简单,一看即懂。
解决
准备好两个要用到的jar包,如xwork-core-2.1.6.jar,xwork-core-2.3.20.jar。使用解压工具查看xwork-core-2.1.6.jar包,根据标题路径依次查找,找到StringUtils.class。将该文件解压到桌面。然后,再根据标题顺序,依次在桌面建立文件夹org/apache/commons/lang/xwork,接着,把StringUtils.class放到xwork文件夹内,最后,用解压工具查看xwork-core-2.3.20.jar,在该jar包根目录下右击鼠标,选择添加文件到压缩文件中,选择org文件夹即可。至此,大功告成,把做好的xwork-core-2.3.20.jar覆盖原来的xwork-core-2.3.20.jar即可。
最后
我想,我们做好的这个xwork-core-2.3.20.jar功能是要比原先的jar包强大一点点吧,至少解决了orgapache.commons.lang.xwork.StringUtils问题嘛,如果,这个jar包要是放在csdn下载频道里,我要卖它3积分!
更多文章,请关注:开猿笔记