Журнали запуску Tomcat - ТЕЖЕ: фільтр помилок Почати, як отримати трасування стека?


96

Коли я запускаю Tomcat, я отримую таку помилку:

Jun 10, 2010 5:17:25 PM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
Jun 10, 2010 5:17:25 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/mywebapplication] startup failed due to previous errors

Здається дивним, що журнали Tomcat не включатимуть трасування стека. Хтось має пропозицію щодо того, як збільшити реєстрацію в Tomcat, щоб отримати сліди стека для таких помилок?


1
Я використовую Guice-Servlet, і, спробувавши / схопивши метод мого налаштування для цього фреймворку, я зміг вловити всі винятки та відновити їх після реєстрації. Мені все-таки довелося сліпо налагоджувати роботу фільтра Гіса-Сервлета, але все, що додається до цього, здається, просто працює.
benstpierre

1
Здається, стек відстежує goto stdout, але Intellij не читає stdout для Tomcat. tomcat.apache.org/tomcat-6.0-doc/logging.html Мені потрібно зробити stdout в tomcat переспрямуванням у файл, щоб Intellij міг його переглянути.
benstpierre

Відповіді:


138

Перевірте localhost_yyyy_mm_dd.logАБО localhost.yyyy-mm-dd.logжурнали, які створює Tomcat, вони, як правило, зберігають цей тип інформації. Я б не очікував, що повний трак буде скинутий на стандартне.


Мій екземпляр Tomcat 5.5 не записує цей файл.
Арне Евертссон

3
До цього моменту "error filterStart" зазнав моїх кошмарів ... НІКОЛЬШЕ! Ти рок!
Cody S

Одну з таких речей ви раді дізнатись під час розвитку. Дуже дякую.
Франциско Лозано

Мій Tomcat 6 (з налаштуваннями за замовчуванням) ніколи нічого не записує у файл, мені довелося ввімкнути ConsoleHandler, щоб прочитати, що пішло не так, і він написав винятки у вихідний файл Каталіни.

2
@mattblang погляньте на $ TOMCAT_HOME / conf / logging.properties. Установка за замовчуванням є протиінтуїтивно зрозумілою.
мат б

80

створити файл з назвою logging.properties у WEB-INF / класах із таким вмістом:

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler

Зверніть увагу, що якщо у вас немає каталогу класів у WEB-INF, ви можете просто створити його, і він буде працювати нормально.
Muhd

21

Tomcat реєструє стек, але не завжди ясно, де знаходяться файли журналу, коли tomcat запускається з IDE. Коли я запускаю його з IntelliJ, CATALINA_BASEвстановлюється значення ${home}/.IntelliJIdea10/system/tomcat/Unnamed_r6-idea, а файли журналів знаходяться в [CATALINA_BASE]/logs.

Щоб переглянути журнали, знайдіть файли журналів або відредагуйте, [CATALINA_HOME]/conf/logging.propertiesщоб направити вихідні дані реєстратора tomcat на консоль. Нижче я додав другий обробник до конфігурації tomcat за замовчуванням:

 org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
 org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

Тепер повний стек стека з'являється у вихідних даних IntelliJ:

 Dec 27, 2011 12:02:45 PM org.apache.catalina.core.StandardContext filterStart
 SEVERE: Exception starting filter filterChainProxy
 org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'filterChainProxy' is defined   at
 org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529)
 . . .

9

вам потрібно скопіювати файли

cp /path/to/solr/example/lib/ext/* /path/to/tomcat/lib
cp /path/to/solr/example/resources/* /path/to/tomcat/lib // or inside extracted solr

а потім перезапустіть tomcat


3
так, це мене врятувало! . Також було б непоганою ідеєю поглянути на /path/to/solr/example/resources/log4j.properties та відредагувати свій журнал
user9869932

5

Можливо, ваша програма складена з іншим JRE, ніж Tomcat.

Перевірте java -versionна своєму сервері, а потім компілюйте свій код з тією ж версією. У мене сталася помилка, оскільки мій стандартний JRE Eclipse був 1,6, а Tomcat використовував 1,5 - це не може працювати.


2

У CentOS 6 та Solr 4.4.0

Мені довелося скласти кілька файлів lib, щоб вирішити цю помилку

cp ~/solr-4.4.0/example/lib/ext/* /usr/share/tomcat6/lib/

Це і вирішило проблему для мене. Ubuntu 14.04 та solr 4.8.1 та tomcat 7.
cjungel

2

Зазвичай є інформація про проблему в localhost. [Date] .log. Але іноді в цьому журналі немає нічого. Це може статися, якщо в проекті зіпсована конфігурація (кілька розробників працювали над нею тривалий час і кожен додавав щось від себе). Я зіткнувся з цією проблемою БЕЗ будь-якої інформації в журналі. Досить швидкий і надійний підхід:

  1. Спробуйте видалити з web.xml все, що може спричинити будь-яку проблему. Ви навіть можете видалити все, крім тегів. Якщо додаток все ще не можна розгорнути - продовжуйте.

  2. Видаліть кожен * .xml дескриптор з WEB-INF / класів. Якщо програму неможливо розгорнути - продовжуйте роботу.

  3. Видаліть усі конфігурації журналювання, які ви можете знайти у вашій війні (logging.properties, log4j.properties). Спробуйте розгорнути. На цьому кроці у мене з’явилася більш інформативна помилка, але розгортання все-таки не вдалося.

Після googling для цієї помилки я з'ясував, що проект включає стару версію xerces, яка зіткнулася з версією Tomcat (яка була новішою) і не застосувала програму для розгортання. Після оновлення xerces у веб-додатку все стало нормально.


1

Налаштування журналювання log4j для Tomcat досить просте. Нижче наведено посилання з http://tomcat.apache.org/tomcat-5.5-doc/logging.html :

  1. Створіть файл з назвою log4j.properties із таким вмістом та збережіть його у загальні / класи.

              log4j.rootLogger=DEBUG, R 
              log4j.appender.R=org.apache.log4j.RollingFileAppender 
              log4j.appender.R.File=${catalina.home}/logs/tomcat.log 
              log4j.appender.R.MaxFileSize=10MB 
              log4j.appender.R.MaxBackupIndex=10 
              log4j.appender.R.layout=org.apache.log4j.PatternLayout 
              log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
  2. Завантажте Log4J (v1.2 або новішої версії) та помістіть банку log4j у $ CATALINA_HOME / common / lib.

  3. Завантажте Commons Logging та розмістіть commons-logging-xyzjar (не commons-logging-api-xyzjar) у $ CATALINA_HOME / common / lib з jar4j jar.
  4. Запустіть Tomcat

Можливо, ви також захочете поглянути на http://wiki.apache.org/tomcat/FAQ/Logging


Чи спричинить це винятки розгортання насправді належним чином реєструвати?
benstpierre

Так. Я використовував цей точний метод, щоб знайти причини проблем під час розгортання.
Томмі

1
Вибачте, але файл журналу непроникний із рівнем журналу DEBUG. Він містить декілька винятків, які, здається, не мають нічого спільного з проблемою - яка, на мою думку, є проблемою Struts у моєму випадку.
Арне Евертссон,

1

якщо хтось отримує помилку, наприклад, СЕРВЕР: Помилка filterStart 29 квітня 2013 16:49:20 org.apache.catalina.core.StandardContext startInternal SEVERE: Запуск контексту [/ TraceMW] не вдався через попередні помилки

то, будь ласка, перевірте, чи містить ваш каталог tomcat / lib cors-filter-1.5.jar чи ні. якщо у вас немає u, ви отримаєте вище помилки, і програма ур не буде доступна.

Отже, мені просто вдалося скопіювати файл jar з іншої папки tomcat, і я не отримав вищезгадану помилку пізніше.


1

Я теж отримав ту ж помилку і багато намагався вирішити цю проблему. Провів трохи часу в пошуках Google і знайшов таке рішення, і моя проблема була вирішена.

проблема була пов’язана з відсутністю бібліотек Struts2 у шляху розгортання. Більшість людей можуть надавати бібліотеки для компіляції і, як правило, забувають додавати необхідні бібліотеки для виконання. Тож я додав ті самі бібліотеки у збірку веб-розгортання, і проблема вимкнена.


1

У мене виникла та сама проблема, не в змозі запустити програму після її розгортання в tomcat. Але, як тільки я копіюю набір банок Struts у каталог CATALINA_HOME \ lib (Tomcat dir), це буде вирішено. Не потрібно мати цих банок у своєму WEB_INF \ lib, але їх потрібно мати у своєму шляху нарощування.

commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

freemarker-2.3.16.jar

javassist-3.11.0.GA.jar

struts2-convention-plugin-2.2.1.jar

struts2-core-2.2.1.jar

xwork-core-2.2.1.jar


0

Просто хотів зробити свій внесок, витративши останню годину на майже однакову проблему. Моє рішення полягало в тому, що якось наш аплікатор .jar був пошкоджений, тому розміщення баночки з нашого сервера розробників забезпечило виправлення.


0

У мене було подібне питання. Підказка Ренато працювала на мене. Я використав старішу версію файлів класу java (у папці WEB-INF / класи), і проблема зникла. Отже, це мало бути невідповідність версії компілятора.


0

Це зробило для мене фокус: Просто видаліть усі бібліотеки, а потім скомпілюйте та запустіть. Це спонукає їх помилки у вашому проекті підтвердити. Перезапустіть проект після застосування бібліотек.



-1

Виконайте наступну команду, щоб показати журнали каталіни на терміналі ---

sh start-camunda.sh; tail -f server/apache-tomcat-8.0.24/logs/catalina.out
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.