2012-08-03 27 views
5

Khi tôi undeploy ứng dụng của tôi từ Tomcat, tôi thấy dưới đây sai sót trong Tomcat bản ghi. Điều gì có thể là vấn đề? Làm thế nào tôi nên khắc phục vấn đề này.Tomcat ném java.lang.UnsupportedOperationException khi ứng dụng của tôi là undeployed

---------------------------- Nhật ký Tomcat ---------------- -----------

SEVERE: The web application [/dfsmonitor] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [[email protected]]) and a value of type [com.sun.xml.stream.XMLReaderImpl] (value [[email protected]]) 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 [[email protected]]) 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 

Vui lòng cho tôi biết điều gì có thể là vấn đề.

Trả lời

0

Bạn có thể tránh đặt các trường hợp XMLStreamWriterImpl vào các địa phương chuỗi, theo cách đó khi tắt Tomcat sẽ không có bất kỳ sự cố nào khi xóa chúng.

Nhưng ngoài thực tế triển khai phương thức hủy trên Servlet, hoặc đăng ký móc tắt trong môi trường như Spring và theo dõi tất cả các giá trị bạn đã đặt vào chuỗi chỉ để bạn có thể xóa chúng khi tắt máy, tôi không ' Tôi nghĩ bạn thực sự cần phải lo lắng về điều này. Mặc dù nó là kỳ lạ mà bạn, hoặc mã bạn đang sử dụng, được lưu trữ giá trị này vào một threadlocal - thường dòng nhà văn được tạo ra và tiêu hủy một cách nhanh chóng và không tồn tại lâu dài.

+0

Tôi có cùng một vấn đề. Tôi thực sự sử dụng một số ThreadLocals, nhưng không có bất kỳ "XMLStreamWriterImpl" được sử dụng. Để chính xác hơn, từ "XMLStreamWriterImpl" không xuất hiện trong mã của tôi cả. Vì vậy, tôi không hiểu tại sao ngoại lệ. Bất kỳ ý tưởng? – Asturio

Các vấn đề liên quan