有时在关闭Tomcat的时候,Tomcat会报
The web application created a ThreadLocal with key of type [null] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@1807b9a]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@32d6e7]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak..
实际上是Tomcat 6.0.25版本开始增加了内存监测的机制:如果检测到可能内存泄漏的地方会报错。
网上有很多说是降低Tomcat版本就可以了。这样做只是Tomcat不打log,还存在内存泄漏的问题。
像这种异常大多数都是jar的bug。像上面的问题就是Struts的xwork jar包bug。
https://issues.apache.org/jira/browse/WW-3768
这种bug发现后,升级有错误的jar包就能解决。