Я создал веб-приложение в Clojure, упаковал его как WAR и развернул поверх Tomcat.Это работает, как я ожидаю, но когда я иду, чтобы закрыть Tomcat, я вижу много исключений, таких как:
SEVERE: The web application [] created a ThreadLocal with key of type
[java.lang.ThreadLocal] (value [java.lang.ThreadLocal@fc5408]) and a value of type [clojure.lang.LockingTransaction] (value [clojure.lang.LockingTransaction@12db7c]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Mar 17, 2011 4:19:48 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [] created a ThreadLocal with key of type [null] (value [clojure.lang.Var$1@11de914]) and a value of type [clojure.lang.Var.Frame] (value [clojure.lang.Var$Frame@7c28c]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Mar 17, 2011 4:19:48 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [] created a ThreadLocal with key of type [null] (value [clojure.lang.Var$1@11de914]) and a value of type [clojure.lang.Var.Frame] (value [clojure.lang.Var$Frame@17588d5]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
Я понимаю, что некоторые вещи, которые делает clojure, могут немного опередить мусор Javaколлекционер время от времени.В моей войне есть ServletContextListener, который запускает несколько фоновых потоков, но я не вижу причин, по которым они не должны просто изящно завершаться (в конце концов, они не являются демоническими потоками), когда контекст не развертывается.
Возможно, есть какой-нибудь лучший / другой способ, которым я должен использовать, чтобы начать свои темы, которые более дружественны к Tomcat?Прямо сейчас я только начинаю их называть (future (loop ...
.