jeecms无法修改子栏目顺序,引出的源码漏洞

在使用Jeecms开源CMS框架的过程中,遇到了排列顺序修改后系统提示错误的问题。经过一系列排查,最终定位到NPE空指针异常,并通过源码分析解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

老哥最近正在做一个cms的小项目(www.uni-orange.com),验收前期,逐一解决系统bug,直到一个bug的出现,害得老哥老老实实地坐了一天!!

简单介绍一下使用的cms框架:jeecms,国内开源的cms框架,其商业版jeecms并不开源,作为互联网产品,至今已经迭代到v8.1版本,这个数字说明:即使是一个产品,它仍然是存在问题,需要不断完善优化的。

相信多数使用过jeecms的开发或者网管在使用过程中多多少少都会遇到一些问题,jeecms官方提供了技术论坛去帮助用户解决问题,但是大多数问题普通用户是无权限查看的。

其商业版jeecms是提供源码的,在使用及二次开发中,通过其产生的问题作为驱动,查阅其源码,有了一点点了解,确实可以为解决问题提供帮助,不得不说,其底层实体类数据结构的设计确实很好(当然这与其选择hibernate框架是分不开的,这里并不是说hibernate框架有多好)。早前带过一个社科院的数据处理项目(数据结构偏复杂),现在回想起当初的数据结构设计......,这就是阅读源码的好处,取其糟粕,去其精华。没毛病。

不废话,上BUG:


修改排列顺序并保存,系统报错“系统发生了一点小故障”,好,开始解决这个问题:

1.查找日志,但并未发现其异常信息

2.本地debug,其日志级别配置在logback.xml中

将其改为“DEBUG”级别,便于调试,但是本地调试过程中,上述操作正常运行,问题并没有重现;

3.修改服务器上cms的日志级别,重启cms应用,远程调试tomcat,跟踪日志,发现异常:


NPE空指针异常,智者千虑必有一失,且不论这个问题是否是由于使用不当或是数据有误引起,出现空指针异常,就一定是代码有问题,至少是有漏洞的。

4.找到源码:


5.解决问题的方法已经明了:只需增加不为空判断即可(它这块的逻辑判断确实是存在疏忽的)

6.如果想找到问题产生的具体原因,就需要更加深入的跟踪代码,了解其数据处理的逻辑了

其实无论是生活还是工作中,都会遇到很多问题,不要慌,你要相信“世上无难事,只要肯放弃”。

不管是解决什么问题,首先要确认的就是解决思路,这会让你事半功倍。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值