Tomcat, не закрывающийся в Eclipse

Я создаю относительно простое веб-приложение, где основной сервлет реализует ServletContextListener интерфейс, чтобы определить, был ли контекст запущен или остановлен. Я реализовал мой contextInitialized, contextDestroyed, init и destroy методы (оба init и destroy звонить super на базовом классе). Я в настоящее время не реализовывал реальной функциональности, кроме которой я инициализировал log4j в contextInitialized метод, где я загружаюсь log4j.properties файл.

Когда я запускаю и останавливаю сервер Tomcat из Eclipse однако, все называют в правильном порядке (я использую некоторых System.out.printlnдля тестирования этого), но приблизительно после 10 секунд остановки сервера мне дарят всплывающее окно Eclipse, заявляя следующее:

Сервер Tomcat v6.0 сервера в localhost не отвечает. Вы хотите завершить этот сервер? Нажмите "OK", чтобы завершить сервер или нажать Cancel, чтобы продолжить ожидать.

Это - то, что печатается в моей консоли Eclipse, когда я останавливаю сервер:

01.04.2010 19:39:13 org.apache.catalina.core. Остановка StandardService
ИНФОРМАЦИЯ: Остановка сервиса Catalina
contextDestroyed
01.04.2010 19:39:13 org.apache.coyote.http11. Http11Protocol уничтожают
ИНФОРМАЦИЯ: Остановка Койота HTTP/1.1 на http-8080

И после последнего INFO передайте его, просто зависает там, пока всплывающее окно не появляется. Если я принимаю решение ожидать, нажмите Cancel, Eclipse становится неприменимым, и я должен уничтожить процесс Eclipse от терминала.

Любой вход о том, как решить эту проблему, значительно ценился бы.

ОБНОВЛЕНИЕ:

Проблема была вызвана потоком недемона, который я запускаю в моем init метод (забыл упоминать это :). Проблема была решена путем явной остановки потока с stop метод, даже при том, что тот метод, кажется, удерживается от использования.

16
задан skaffman 23 January 2010 в 12:04
поделиться

2 ответа

Как упоминалось в этот поток , это должно быть связано с проблемой очистки.

Если webapp не выполнит очистку полностью, особенно в том, что касается остановки запускаемых не адемонных потоков, то Tomcat не сможет завершить работу.
. Нажатие кнопки "Стоп" имеет то преимущество, что дает таймаут
. Если Tomcat не остановится в течение таймаута, появится диалоговое окно с возможностью прекратить работу сервера или продолжить ожидание.

6
ответ дан 30 November 2019 в 22:55
поделиться

У меня было похожее поведение. Если закрытие Tomcat не помогает, попробуйте найти другую активную консоль из консольного вида и убейте ее. В моем случае это помогает.

0
ответ дан 30 November 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: