Сбой Tomcat при развертывании приложения Spring на сервере: INFO: Initializing Spring root WebApplicationContext

Я пытаюсь развернуть свое весеннее приложение на серверной машине с сервером tomcat 6.0.29. Но сервер tomcat автоматически останавливается при извлечении войны.
В Журнале Catalina у меня есть следующее:

Jan 27, 2012 3:02:44 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive application.war  

В localhost.log

Jan 27, 2012 3:03:21 AM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext

Никакой трассировки стека нет.

Я попытался перезапустить tomcat, но сервер остановился при извлечении файла войны. Я попытался увеличить память JVM до 1024 МБ. Все та же проблема.

Я развернул ту же войну на другом тестовом сервере, и она работает нормально.

Любая помощь...


person vissu    schedule 27.01.2012    source источник
comment
Вы уверены, что во всех журналах Tomcat нет ошибок? Отвечает ли Tomcat или зависает? Можете ли вы сделать дамп потока с помощью jstack или JVisualVM?   -  person Tomasz Nurkiewicz    schedule 27.01.2012
comment
Хай Томаш Нуркевич, Да, у меня нет трассировки стека ошибок в журналах tomcat. Tomcat был немедленно остановлен. И я сейчас попробую jstack для дампа потока.   -  person vissu    schedule 27.01.2012
comment
Это Java-процесс Tomcat, который дает сбой?   -  person ndeverge    schedule 27.01.2012
comment
@nico_ekito, Tomcat получает Crash.   -  person vissu    schedule 27.01.2012
comment
Какую версию JVM вы используете? И какой (Oracle, OpenJDK, Gnu)?   -  person ndeverge    schedule 27.01.2012
comment
@nico_ekito, я использую Oracle Jdk1.7.0. Моя основная проблема заключается в том, что Сталкиваюсь с проблемой на рабочем сервере. Работает нормально на моем локальном компьютере и на моем тестовом сервере.   -  person vissu    schedule 27.01.2012
comment
Попробуйте обновить уровень ведения журнала Spring (DEBUG), и, возможно, вы увидите, что bean-компонент дает сбой.   -  person ndeverge    schedule 27.01.2012


Ответы (3)


Вы видите что-то вроде этого «СЕРЬЕЗНО: Ошибка listenerStart»? или нет в журналах. В случае сбоя Tomcat должен быть дамп потока и/или дамп кучи в каталоге запуска. Также проверьте порты, доступные из ОС/брандмауэра для привязки.

Включение ведения журнала отладки может помочь. (Измените уровни журнала на DEBUG вместо INFO в файлах журнала ниже)

Включение журнала отладки Tomcat: см.: Как установить уровень войти в DEBUG в Tomcat 6?

Включение журнала отладки Spring:

Вы можете включить режим ведения журнала весенней отладки (почему он не может развернуть веб-приложение), добавив logging.properties (имя должно точно совпадать) в вашем каталоге WEB-INF/classes

См.: СЕРЬЕЗНЫЙ: Ошибка listenerStart

person Rajendra    schedule 27.01.2012
comment
Роллер и Эрик Б. Спасибо за информацию. Но точная проблема в том, что на жестком диске моего сервера есть плохие блоки. Итак, реестр дает сбой, пока я пытаюсь запустить большое приложение в tomcat. Поэтому я отформатировал жесткий диск, установил все необходимые инструменты и снова попытался развернуть приложение. Теперь он работает нормально... Еще раз спасибо. - person vissu; 31.01.2012

Как вы запускаете Tomcat? Что это за ОС? Я сам сталкивался с этой проблемой в прошлом при запуске Tomcat в CentOS с помощью сценария запуска. Обычно это было связано с настройками безопасности файлов и/или selinux, запрещающими запись/чтение определенных файловых пространств на диске.

Попробуйте запустить из консоли с помощью ./catalina.sh run и посмотрите, работает ли это на сервере (при условии, что это сервер * nix). Если это так, проверьте право собственности на все файлы и права на чтение/запись. На мгновение отключите selinux (если он в данный момент включен), чтобы увидеть, имеет ли это какое-либо значение.

Это куча проб и ошибок, когда у вас нет доступной дополнительной отладочной информации.

person Eric B.    schedule 29.01.2012

В прошлый раз, когда я столкнулся с этой проблемой, это было связано с тем, что я думал, что использую h2database, в то время как конфигурации были такими, что он использовал mysql, и, конечно, не было сервера mysql для подключения. Я использовал проект maven в eclipse, и ни одно из моих изменений не вступало в силу, пока я этого не сделал.

Свойства проекта-> Maven-> Обновить проект, а затем в

На вкладке «Серверы» щелкните правой кнопкой мыши имя сервера и выберите «Опубликовать».

Проверьте файл jdbc.properties в веб-приложении (в моем случае он был где-то внутри папки /.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/), а не в исходном коде, чтобы увидеть, каковы окончательные параметры для подключения к базе данных.

person Krishna    schedule 10.07.2013