簡體   English   中英

取消部署我的應用程序時,Tomcat會拋出java.lang.UnsupportedOperationException

[英]Tomcat throws java.lang.UnsupportedOperationException when my Application is undeployed

當我從Tomcat取消部署我的應用程序時,我在Tomcat日志中看到以下錯誤。 可能是什么問題? 我該如何解決這個問題。

---------------------------- Tomcat log -------------------- -------

SEVERE: The web application [/dfsmonitor] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@6ca32e]) and a value of type [com.sun.xml.stream.XMLReaderImpl] (value [com.sun.xml.stream.XMLReaderImpl@e01430]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jul 1, 2012 10:18:20 PM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: Unable to determine string representation of value of type [com.sun.xml.stream.writers.XMLStreamWriterImpl]
java.lang.UnsupportedOperationException
at com.sun.xml.stream.writers.XMLStreamWriterImpl.entrySet(XMLStreamWriterImpl.java:2134)
at java.util.AbstractMap.toString(AbstractMap.java:478)
at org.apache.catalina.loader.WebappClassLoader.clearThreadLocalMap(WebappClassLoader.java:2433)
at org.apache.catalina.loader.WebappClassLoader.clearReferencesThreadLocals(WebappClassLoader.java:2349)
at org.apache.catalina.loader.WebappClassLoader.clearReferences(WebappClassLoader.java:1921)
at org.apache.catalina.loader.WebappClassLoader.stop(WebappClassLoader.java:1833)
at org.apache.catalina.loader.WebappLoader.stop(WebappLoader.java:740)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4913)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:932)
at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1357)
at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1328)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:326)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1094)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1106)
at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:468)
at org.apache.catalina.core.StandardService.stop(StandardService.java:604)
at org.apache.catalina.core.StandardServer.stop(StandardServer.java:788)
at org.apache.catalina.startup.Catalina.stop(Catalina.java:662)
at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Jul 1, 2012 10:18:20 PM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/dfsmonitor] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@1bf8785]) and a value of type [com.sun.xml.stream.writers.XMLStreamWriterImpl] (value [Unknown]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Jul 1, 2012 10:18:20 PM org.apache.coyote.http11.Http11AprProtocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080

請讓我知道可能是什么問題。

您可以避免將XMLStreamWriterImpl實例放入線程本地,這樣一旦關閉Tomcat就不會有任何問題刪除它們。

但除了在Servlet上實際實現destroy方法,或者在Spring等環境中注冊關閉鈎子並跟蹤你曾經設置為threadlocals的所有值,只是為了讓你可以在關機時刪除它們,我認為你不是真的需要擔心這個。 雖然您或您正在使用的代碼將這個值存儲到threadlocal中是很奇怪的 - 通常流編寫器會很快創建和銷毀,並且不會持續很長時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM