2015-11-17 3 views
1

У меня есть встроенный tomcat (7.0.64) на MAC и развертывание военного файла, работающего на java 1.7.067. По какой-то причине мой сервер tomcat зависает при вызове «Tomcat.start()».Развертывание войны во встроенном Tomcat

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

Я попытался подключить tomcat log.properties и получил журналы, направленные в файл, с надеждой получить какие-либо подсказки. Но я не вижу каких-либо исключений, лесозаготовительной останавливается на этих линиях,

FINE: Loading class from parent 
Nov 16, 2015 9:30:01 PM org.apache.catalina.loader.WebappClassLoader loadClass 
FINE: Loading class from parent 
Nov 16, 2015 9:30:01 PM org.apache.catalina.loader.WebappClassLoader loadClass 
FINE: loadClass(com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl, false) 
Nov 16, 2015 9:30:01 PM org.apache.catalina.loader.WebappClassLoader loadClass 
FINE: loadClass(com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl, false) 
Nov 16, 2015 9:30:01 PM org.apache.catalina.loader.WebappClassLoader loadClass 
FINE: loadClass(com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl, false) 
Nov 16, 2015 9:30:01 PM org.apache.catalina.loader.WebappClassLoader loadClass 
FINE: loadClass(com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl, false) 

Не уверен, что если он не может найти «DTDDVFactoryImpl», так как это является частью самой JDK библиотеки, а также я в том числе xercesimpl.jar.

В основном я ищу способы, которые могут помочь мне выяснить, что или какой класс блокирует от развертывания в Интернете.

Любые идеи/указатели?

ТИА

Обновлено - Мой log.properties выглядит,

handlers=java.util.logging.ConsoleHandler, org.apache.juli.FileHandler 

org.apache.juli.FileHandler.level=ALL 
org.apache.juli.FileHandler.directory=./logs 
org.apache.juli.FileHandler.prefix=tomcat- 

java.util.logging.ConsoleHandler.level=ALL 
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 

org.apache.catalina.level=FINEST 
org.apache.catalina.handlers=org.apache.juli.FileHandler 
+0

Все ли эти строки в этом файле журнала? Что такое log.properties? – Stefan

+0

Да, это последние строки из файла журнала. – Vicky

ответ

0

линия -

FINE: loadClass(com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl, false) 

Данное сообщение означает, что веб-приложение уже было остановлено, но TimerTask пытается загрузить из него класс. Какое веб-приложение запустило этот таймер? Если таймер был запущен этим веб-приложением, то это ваша ошибка . Вы должны были настроить javax.servlet.ServletContextListener, чтобы остановить (отменить) таймер, когда останавливается. Вы не можете загружать классы, когда приложение уже заблокировано. OR Если таймер был запущен другим веб-приложением, это означает, что у вас есть утечка памяти PermGen. Убедитесь, что у вас есть JreMemoryLeakPreventionListener, настроенный в server.xml. Известно, что в Java XML API была обнаружена утечка памяти PermGen. обходной путь, чтобы подавить его добавляли к JreMemoryLeakPreventionListener в r884341 [1] Марк имеет представление об утечках памяти http://people.apache.org/~markt/presentations/2010-11-04-Memory-Leaks-60mins.pdf ИЛИ пакетирования отдельную копию Apache Xerces с веб-приложением может помочь. Это не поможет, если основной причиной является ваш отказ от отмены таймера. [1] http://svn.apache.org/viewvc?view=revision&revision=r884341

надеюсь, что это поможет.

+0

Не знаете, что означает «веб-приложение уже остановлено»? На данный момент я просто развертываю это (только одно) приложение. То, что я надеялся выяснить, - если по какой-то причине tomcat не может развернуть это приложение, тогда он должен бросить какое-то исключение, указывающее отсутствие данных, таких как class/etc. – Vicky

+0

Существует только одно приложение, которое развертывается, и если его развертывание не проходит, я не думаю, что какой-либо таймер из этого приложения вступит в игру. Также я попытался связать XercesImpl.jar в пути к классам, который тоже не помог. JreMemoryLeak, не очень уверен в этом, но я дам ему шанс. – Vicky

Смежные вопросы