Tomcat 시작 로그-심각 : 오류 filterStart 스택 추적을 얻는 방법?


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을 사용하고 있으며이 프레임 워크에 대한 설정 방법에 대해 try / catch를 수행하여 모든 예외를 포착하고 직접 로깅 한 후 다시 던질 수있었습니다. 나는 여전히 Guice-Servlet의 필터가 작동하도록 맹목적으로 디버깅해야했지만 그에 추가 된 모든 것은 작동하는 것 같습니다.
benstpierre

1
스택 추적은 stdout으로 이동하지만 Intellij는 Tomcat의 stdout을 읽지 않습니다. tomcat.apache.org/tomcat-6.0-doc/logging.html Intellij에서 볼 수 있도록 tomcat에서 stdout을 파일로 리디렉션해야합니다.
benstpierre 2010-06-22

답변:


138

Tomcat이 생성 하는 localhost_yyyy_mm_dd.logOR localhost.yyyy-mm-dd.log로그를 확인합니다. 일반적으로 해당 유형의 정보를 저장합니다. 전체 스택 트레이스가 표준 출력으로 덤프 될 것으로 기대하지 않습니다.


내 Tomcat 5.5 인스턴스는 해당 파일을 작성하지 않습니다.
Arne Evertsson 2010

3
지금까지 "error filterStart"가 내 악몽을 괴롭 혔습니다. 더 이상은 없습니다! 락!
Cody S

개발 과정에서 발견하게 된 점 중 하나입니다. 정말 고마워.
Francisco Lozano 2013 년

내 Tomcat 6 (기본 설정 포함)은 파일에 아무것도 쓰지 않고 ConsoleHandler를 켜서 잘못된 내용을 읽어야했으며 Catalina 출력 파일에 예외가 작성되었습니다.

2
@mattblang은 $ TOMCAT_HOME / conf / logging.properties를 살펴보십시오. 기본 설정은 반 직관적입니다.
matt b

80

다음 내용으로 WEB-INF / classes에 logging.properties라는 파일을 만듭니다.

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.propertiestomcat 로거 출력을 콘솔로 보내도록 편집하십시오 . 아래에서 기본 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

그런 다음 바람둥이 를 다시 시작하십시오.


3
예, 이것은 나를 구했습니다! . 또한 /path/to/solr/example/resources/log4j.properties를보고 로그 디렉토리를 편집하는 것이 좋습니다.
user9869932

5

애플리케이션이 Tomcat과 다른 JRE로 컴파일되었을 수 있습니다.

확인 java -version동일한 버전의 코드를 컴파일 한 후 서버에합니다. Eclipse 표준 JRE가 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 2014 년

2

일반적으로 localhost. [date] .log에 문제에 대한 정보가 있습니다. 그러나 때로는이 로그에 아무것도 없습니다. 이것은 프로젝트의 구성이 엉망인 경우에 발생할 수 있습니다 (여러 개발자가 오랫동안 작업하고 각자 자신에게서 무언가를 추가했습니다). 나는 로그에 어떤 정보도없이이 문제에 직면했다. 보다 빠르고 강력한 접근 방식 :

  1. web.xml에서 문제를 일으킬 수있는 모든 것을 제거하십시오. 태그를 제외한 모든 것을 제거 할 수도 있습니다. 여전히 응용 프로그램을 배포 할 수없는 경우 계속하십시오.

  2. WEB-INF / classes에서 모든 * .xml 설명자를 제거하십시오. 응용 프로그램을 배포 할 수없는 경우 계속하십시오.

  3. 전쟁에서 찾을 수있는 모든 로깅 구성을 제거합니다 (logging.properties, log4j.properties). 배포 해보십시오. 이 단계에서 더 많은 정보를 제공하는 오류가 발생했지만 배포는 여전히 실패했습니다.

이 오류를 검색 한 후 프로젝트에 이전 버전의 xerces가 포함되어 있음을 발견했습니다.이 버전은 Tomcat의 버전 (최신 버전)과 충돌하고 배포 할 애플리케이션이 아닙니다. 웹 응용 프로그램에서 xerces를 업그레이드 한 후 모든 것이 잘되었습니다.


1

Tomcat에 대한 log4j 로깅을 설정하는 것은 매우 간단합니다. 다음은 http://tomcat.apache.org/tomcat-5.5-doc/logging.html 에서 인용되었습니다 .

  1. 다음 내용으로 log4j.properties라는 파일을 만들고 common / classes에 저장합니다.

              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 jar를 $ CATALINA_HOME / common / lib에 배치합니다.

  3. Commons Logging을 다운로드하고 log4j jar와 함께 $ CATALINA_HOME / common / lib에 commons-logging-xyzjar (commons-logging-api-xyzjar 아님)를 배치합니다.
  4. Tomcat 시작

http://wiki.apache.org/tomcat/FAQ/Logging을 살펴볼 수도 있습니다 .


이로 인해 배포 예외가 실제로 제대로 기록됩니까?
benstpierre 2010-06-21

예. 이 정확한 방법을 사용하여 배포 중에 문제의 원인을 찾습니다.
Tommi

1
죄송하지만 로그 파일은 DEBUG의 로그 수준으로 뚫을 수 없습니다. 문제와 관련이없는 것 같은 몇 가지 예외가 포함되어 있습니다. 제 경우에는 Struts 문제라고 생각합니다.
Arne Evertsson 2010

1

누군가 SEVERE와 같은 오류가 발생하는 경우 : Error filterStart 2013 년 4 월 29 일 오후 4:49:20 org.apache.catalina.core.StandardContext startInternal SEVERE : 이전 오류로 인해 컨텍스트 [/ TraceMW] 시작 실패

그런 다음 tomcat / lib 디렉토리에 cors-filter-1.5.jar 가 포함되어 있는지 확인하십시오 . 점이 있으면 위의 오류가 발생하고 응용 프로그램을 사용할 수 없습니다.

그래서 나는 다른 바람둥이 폴더에서 jar 파일을 복사하고 나중에 위에서 언급 한 오류를 얻지 못했습니다.


1

나도 같은 오류가 발생 하여이 문제를 해결하는 데 많은 어려움을 겪었습니다. Google 검색에 약간의 시간을 보냈고 다음 해결책을 찾았고 내 문제가 해결되었습니다.

이 문제는 배포 경로에 Struts2 라이브러리가 누락 되었기 때문입니다. 대부분의 사람들은 컴파일을 위해 라이브러리를 넣을 수 있으며 런타임에 필요한 라이브러리를 첨부하는 것을 잊는 경향이 있습니다. 그래서 웹 배포 어셈블리에 동일한 라이브러리를 추가했는데 문제가 해결되었습니다.


1

동일한 문제가 발생하여 Tomcat에 배포되면 응용 프로그램을 시작할 수 없습니다. 그러나 Struts jar 세트를 CATALINA_HOME \ lib (Tomcat dir) 디렉토리에 복사하면 해결됩니다. WEB_INF \ lib에 이러한 jar가있을 필요는 없지만 빌드 경로에 있어야합니다.

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이 손상되어 개발 서버에서 jar를 배치하면 수정 사항이 제공된다는 것입니다.


0

비슷한 문제가있었습니다. Renato의 팁이 저에게 효과적이었습니다. 이전 버전의 Java 클래스 파일 (WEB-INF / classes 폴더 아래)을 사용했는데 문제가 사라졌습니다. 따라서 컴파일러 버전이 일치하지 않았어야합니다.


0

이것은 나를 위해 트릭을했습니다. 모든 라이브러리를 제거한 다음 컴파일하고 실행하십시오. 프로젝트에서 오류가 있는지 확인하라는 메시지가 표시됩니다. 라이브러리를 적용한 후 프로젝트를 다시 실행하십시오.


0

일반적으로 서버 JDK 버전은 배포 된 애플리케이션보다 낮습니다 (더 높은 jdk 버전으로 빌드 됨).


-1

다음 명령을 실행하여 터미널에 catalina 로그를 표시합니다 .---

sh start-camunda.sh; tail -f server/apache-tomcat-8.0.24/logs/catalina.out
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.