Java, Spring, Tomcat зависает на «INFO: Инициализация корневого WebApplicationContext Spring», я думаю, что я изменил разрешенную кучу памяти для всей моей системы - PullRequest
5 голосов
/ 28 февраля 2011

Я поиграл с распределением кучи памяти Java и думаю, что сделал что-то, что установило его не только для какой-либо конкретной папки tomcat, но и для всей системы, так как я не могу запустить свое приложение в Spring или с пользовательской папкой tomcat что я также использовал для тестирования. Когда я пытаюсь запустить приложение, оно просто зависает в «INFO: Инициализация корневого WebApplicationContext Spring».

Мне не совсем понятно, как я мог установить это в командной строке Linux, выполнив что-то вроде "export CATALINA_OPTS="-Xms2000m -Xmx4500m" или "JAVA_OPTS="-Xms2000m -Xmx4500m -XX:MaxPermSize=4500m"

Я думаю, что случайно установил настройки, которые я имел в виду для своего облачного сервера (который имеет больший объем памяти), поэтому я выделил ему больше памяти, чем вся моя система.

Буду признателен за любую помощь, если кто-нибудь может сообщить мне, если это возможно, я сделал это, и если это может быть причиной проблемы и как я могу получить вывод из моей системы о текущем распределении, чтобы я мог проверить / изменить Я попробовал "export CATALINA_OPTS="-Xms2000m -Xmx4500m", но у меня все равно не получится.

Я хотел бы восстановить все настройки по умолчанию. Обычно я устанавливал выделение кучи памяти в файле /bin/startup.sh в папке tomcat, но, как мне кажется, я забыл об этом и экспериментировал с вещами в командной строке.

Спасибо

Ответы [ 3 ]

5 голосов
/ 01 марта 2011

Проверьте все файлы журнала для Tomcat.Возможно, при запуске Spring WebApplicationContext обнаружены ошибки, но он регистрируется в другом месте.

Установка максимального размера кучи слишком велика для Tomcat, звучит для меня как красная сельдь.Если начальный аргумент размера кучи превышает максимальный размер памяти в системе, Java-процесс немедленно завершится неудачей - Tomcat не сможет приступить к инициализации приложения Spring.

1 голос
/ 02 мая 2011

Посмотрите, можете ли вы увеличить время ожидания сервера, если вы запускаете его из IDE.Из командной строки вам придется подождать.Если проблема не устранена, попробуйте очистить / перезагрузить приложение

1 голос
/ 01 марта 2011

Не находит ошибок для чего нужны отладчики? Почему бы просто не запустить Tomcat в режиме отладки, подождать, пока он «зависнет», и выяснить, что он делает, приостановив соответствующий поток и просмотрев трассировку стека?

Или еще проще: сделать дамп потока после зависания приложения?

...