Ich entwickle eine Webanwendung mit Spring Framework 4.2 mit Apache Tomcat 8.5. Wenn ich eine Datei in einem Verzeichnis ändere, muss ich eine Methode in einem Bean-Objekt aufrufen, um die Informationen neu zu laden. Ich arbeite mit Apache Commons IO, um das Verzeichnis zu überwachen, aber wenn ich die Anwendung deimplementiere, lebt der Thread, der das Verzeichnis scannt, noch.Thread-Probleme mit Webanwendung und Verzeichnisüberwachung mit Spring und Apache Commons IO
Dies ist der Code die Änderungen
final File directory = new File(groupsDirectory);
FileAlterationObserver fao = new FileAlterationObserver(directory);
fao.addListener(new FileAlterationListenerImpl());
final FileAlterationMonitor monitor = new FileAlterationMonitor(pollingInterval);
monitor.addObserver(fao);
monitor.start();
Und das ist die Botschaft, die Tomcat zeigt mir zu sehen, wenn ich die Webapplikation deimplementieren:
22-May-2016 19: 13: 14,377 WARNUNG [http-nio-8084-exec-12] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Die Webanwendung [Argo] scheint einen Thread mit dem Namen [Thread-12] gestartet zu haben, konnte ihn jedoch nicht stoppen. Dies führt sehr wahrscheinlich zu einem Speicherleck. Stack-Ablaufverfolgung des Threads: java.lang.Thread.sleep (systemeigene Methode) org.apache.commons.io.monitor.FileAlterationMonitor.run (FileAlterationMonitor.java:188) java.lang.Thread.run (Thread.java : 745
) ist, können Sie