下了最新的版本struts2.2.3.1,在使用的過程中總是報錯:A web application created a ThreadLocal with key of type , 儘管出現了這個錯誤,但是並不妨礙程序正常運行, 雖然程序雖然能正常運行,但是看的這個錯誤很是彆扭,所以網上搜了一下看看,也就有了下面這篇文章
struts2關於A web application created a ThreadLocal with key of type 異常解決辦法
created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@12c74b9]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@1a34544]) but failed to remove it。。。。
這類問題的解決辦法:
http://confluence.atlassian.com/pages/viewpage.action?pageId=218275753
看看老外的這篇,好像就是在講這個問題,原因大概是說tomcat 6.025之後引入了一種內存泄露的檢查機制,會把不能垃圾收集的對像做日誌。
第一種解決辦法:
使用低於6版本的tomcat
第二種解決辦法:
在tomcat的server.xml文件(在tomcat的安裝路徑下的conf文件夾裏)中把
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
這個監聽給關了。
就是用<!--。。。-->把下面三句話括起來就可以啦。
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />