2015-08-04 2 views
1

когда я бегу мой Tomcat 7 Я получаю сообщение об ошибке:памяти кот утечки 7

Aug 04, 2015 12:53:47 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 
SEVERE: The web application [/sample] appears to have started a thread named [org.springframework.scheduling.quartz.SchedulerFactoryBean#5_Worker-9] but has failed to stop it. This is very likely to create a memory leak. 

ответ

0

Вы должны грациозно выключения кварца в пределах контекста сервлета, как это:

public class AppListener implements ServletContextListener 
{ 

@Override 
public void contextDestroyed(ServletContextEvent arg0) 
{ 
    try 
    { 
     WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); 
     Scheduler scheduler = (Scheduler) context.getBean("quartzSchedulerFactory"); 
     scheduler.shutdown(true); 
    } 
    catch (Exception e) 
    { 
     e.printStackTrace(); 
    } 
} 

@Override 
public void contextInitialized(ServletContextEvent arg0) 
{ 
} 

Вы должны добавить их ServletContextListener в вашем web.xml. Вы должны разместить своего слушателя на первой позиции в вашем web.xml, потому что tomcat запускает слушателей в обратном порядке при выключении.

<listener> 
    <listener-class>yourpackage.AppListener</listener-class> 
</listener> 

В качестве альтернативы вы можете выключить планировщик в методе с аннотацией @PreDestroy