1、背景

项目使用了 Spring + shiro  实现 权限控制, 使用AOP 对 每个 Controller 进行 log 记录时,需要从 shiro 中 获取 username字段, 问题就这样出现了。

UserDO userDO = (UserDO) SecurityUtils.getSubject().getPrincipal();

出现 java.lang.ClassCastException: 

com.xxx.common.dal.dataobject.UserDO cannot be cast to com.xxx.common.dal.dataobject.UserDO

心里一惊,这怎么回事,这段代码我看其他地方也有些的。难道前面的没有问题??

  • 策略一:

    • 立马debug 试了一下以前的代码,发现 都没有进入,一直没有调用。

  • 策略二: google

  • 反思:

    • 看到 异常信息,并且 类的权限定名都一样,应该要 想到 肯能是 classLoader 的问题了,这是基础,但 在实际中 却不能很好的应用 知识。

  • 花了我好久的时间来排查这个问题,真是太 low b了。

最新文章

  1. msdia80.dll文件出现在磁盘根目录下的解决方案
  2. Azure Media Service
  3. spring 官方下载地址(Spring Framework 3.2.x&Spring Framework 4.0.x)
  4. Yii2的深入学习--自动加载机制
  5. MySQL的学习--用户创建授权
  6. 内省(Introspector)
  7. PL/pgSQL学习笔记之八
  8. sqlserver2008 解决 ldf文件过大的方法
  9. Redis源代码分析(十)--- testhelp.h小测试框架和redis-check-aof.c 日志检测
  10. 第二章 Linux目录学习
  11. Android为TV端助力:RecyclerView更新数据时焦点丢失
  12. using Newtonsoft.Json;
  13. 一个suse11 sp1的crash工具版本问题
  14. python设计模式第二十四天【命令模式】
  15. C++如何禁止对象的复制操作
  16. 1950261 - SAP HANA Database Backup Policy Recommendations and Regular Backup Script
  17. CentOS 7 - 创建新用户
  18. flask跨域请求
  19. Oracle数据库的“健康指示器”——事件(events)
  20. Alpha阶段事后诸葛分析

热门文章

  1. spring引用hibernate映射文件的四种方式
  2. linux系统,没有安装任何编辑器的情况,如何操作文件
  3. Spring Boot -- Spring AOP原理及简单实现
  4. 如何写出高性能的CSS3动画
  5. 面向对象之继承以及抽象(Java实现)
  6. 调整数组顺序使奇数位于偶数前面(剑指offer-13)
  7. 双向绑定和 vuex 是否冲突
  8. python--动态网页渲染pyqt5
  9. java 数据结构(三):java常用类 三 日期时间API
  10. Azure Web App (二)使用部署槽切换部署环境