tomcat配置一个线程来调试ThreadLocal的代码问题
前段時(shí)間遇到一個(gè)匪夷所思的問題。
公司的一個(gè)產(chǎn)品系統(tǒng)出現(xiàn)了登錄失敗的情況,時(shí)好時(shí)壞,同事一直排查不出來問題所在。我看了一下那個(gè)問題,確實(shí)也是很奇怪,需要模擬許多次才能出現(xiàn)一次,雖然輸入對(duì)了用戶名和密碼,但就是提示登錄失敗,很是奇怪。
最后才發(fā)覺,因?yàn)榍耙欢螘r(shí)間,同事修改了一些shiro相關(guān)的東西,在其中加入了ThreadLocal記錄登錄失敗的異常情況,但是,沒有在切換Subject時(shí)進(jìn)行預(yù)先的清理之前線程遺留的異常信息,導(dǎo)致輸入一次用戶名或密碼,則這個(gè)線程接收請(qǐng)求后,不論用戶名和密碼是否正確,都會(huì)出現(xiàn)登錄失敗。
所以想到的一個(gè)方法,把tomcat的配置改成一個(gè)線程接收請(qǐng)求,立馬能夠復(fù)現(xiàn)問題了。將BUG修改過來,問題得到解決。
那么在實(shí)際的開發(fā)環(huán)境下,其實(shí)也最好設(shè)置成單一線程的訪問模式,這樣能夠避免多個(gè)ajax請(qǐng)求同時(shí)到來而無法同時(shí)調(diào)試,一個(gè)一個(gè)請(qǐng)求的進(jìn)來,那么我們就能一個(gè)一個(gè)的調(diào)試了。
轉(zhuǎn)載于:https://www.cnblogs.com/weiguangyue/p/9997130.html
總結(jié)
以上是生活随笔為你收集整理的tomcat配置一个线程来调试ThreadLocal的代码问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试重点:设计模式(二)——创建模式
- 下一篇: Python time strptime