接上一篇:解决在待办任务菜单中都会抛出异常,由于definitionId=undefined导致的问题
https://blog.csdn.net/weixin_40816738/article/details/103389663
文章目录
- 一、问题现象
- 二、问题定位
- 三、解决方案
- 3.1. 登录jsite系统管理员账号,给dept用户配置权限
- 3.2. 角色管理
- 3.3. 找到角色授权
- 四、异常解决过程
- 4.1. 控制台报错信息
- 4.2. 抽取关键异常信息
- 4.3. 定位错误类
- 4.4. 分析方法
- 4.5. 分析说明
- 4.6. 再次测试校色授权,就显示了。
- 4.7. 代码改造
- 4.8. 再次验证
- 五、任务办理验证
一、问题现象
二、问题定位
从页面很明显是没有办理权限,导致403错误,情有可原,对吧,那就给dept用户配置权限呗,
三、解决方案
3.1. 登录jsite系统管理员账号,给dept用户配置权限
3.2. 角色管理
【系统设置】-【角色管理】-【编辑】
3.3. 找到角色授权
角色授权既然是空的,我想静静。看看控制台报错信息再定位问题吧?
四、异常解决过程
4.1. 控制台报错信息
4.2. 抽取关键异常信息
从控制台中可以看出,由2条信息比较醒目:
java.lang.ClassNotFoundException: com.jsite.modules.sys.utils.AreaOfficeUtils
at com.jsite.modules.sys.web.RoleController.form(RoleController.java:74)
4.3. 定位错误类
异常信息很明晰那说AreaOfficeUtils类,RoleController.java:74,既然有文件位置,那咱们就去看看吧,
4.4. 分析方法
从以下图中可以看出,通过反射区找 com.jsite.modules.sys.utils.AreaOfficeUtils类,那就在程序中找找有这个类吗?
4.5. 分析说明
程序我是看明白了,他想调用AreaOfficeUtils类的getOfficeList(获取当前用户有权限访问的部门方法),再utils包下就3个工具类,经过查找,UserUtils类中,有getOfficeList(获取当前用户有权限访问的部门方法),那就好办了,类名修改一下即可,再次测试。
4.6. 再次测试校色授权,就显示了。
4.7. 代码改造
但是,我就不明白了,想获取一个工具类的方法,直接调用不就行了,如果是静态的方法,直接用类名.调用不更方便。代码还写了折磨多行,浪费。
代用的方法和我们预期的一样静态的,那就轻松+快乐了。
一行代码就搞定了。哈哈哈!!!
4.8. 再次验证
测试一下,好不好使,对吧
从上图可以看出,也好使。
五、任务办理验证
dept用户的办理权限,我也配置好了,再去待办任务菜单中,去办理任务应该就好了,光预测也不行,测试一下保险。
正常了哈哈哈!!!