解決jeesite開發java.lang.String cannot be cast to com.thinkgem.jeesite.modules.sys.security.SystemAuthorizingRealm$Principal問題


解決jeesite問題java.lang.String cannot be cast to SystemAuthorizingRealm問題


這些天在jeesite項目上進行二次開發,遇到許多莫名其妙的問題,在項目運行的過程中沒有任何錯誤,項目就跑不起來了,報的是如下錯誤。網上找了半天沒有找到解決辦法。

ERROR [500.jsp] - java.lang.String cannot be cast to com.thinkgem.jeesite.modules.sys.security.SystemAuthorizingRealm$Principal
java.lang.ClassCastException: java.lang.String cannot be cast to com.thinkgem.jeesite.modules.sys.security.SystemAuthorizingRealm$Principal
at com.thinkgem.jeesite.modules.sys.utils.UserUtils.getPrincipal(UserUtils.
at com.thinkgem.jeesite.modules.sys.utils.UserUtils.getUser(UserUtils.java:122)
at com.thinkgem.jeesite.common.persistence.BaseEntity.getCurrentUser(BaseEntity.java:80)
at com.thinkgem.jeesite.modules.cms.service.SiteService.findPage(SiteService.java:34)
at com.thinkgem.jeesite.modules.cms.service.SiteService

問題分析

首先可以確定相同的代碼,在其他組員電腦上可以正常運行,不是代碼的問題。
那么問題肯定處在了開發環境上。
我猜測可能是代碼緩存問題,於是我把idea編譯器和項目都清理了一遍,但沒能解決這個問題。
再后來一次偶然的機會發現我這個問題主要發生在火狐瀏覽器(個人傾向於使用火狐瀏覽器,配合firebug非常給力),使用google或者edge都不會出問題。

看看火狐的請求

單從請求也發現不了什么問題,但是緩存里竟然有東西

對比一下火狐和edge的請求cookie參數,便會發現火狐多了一些參數

所以這個問題的解決方法就是將瀏覽器的清理后再進行調試。當然也可以打開隱私模式進行開發,在隱私模式瀏覽器不會自動保存緩存。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM