Tomcat başlangıç ​​günlükleri - SEVERE: Hata filtresiYığın takibi nasıl alınır?


96

Tomcat'i başlattığımda şu hatayı alıyorum:

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 için günlüklerin bir yığın izleme içermemesi garip görünüyor. Bunun gibi hatalar için yığın izleri elde etmek için Tomcat'te günlük kaydını nasıl artıracağına dair bir önerisi var mı?


1
Guice-Servlet kullanıyorum ve bu çerçeve için kurulum yöntemimde bir dene / yakala yaparak tüm istisnaları yakaladım ve oturum açtıktan sonra onları yeniden atabildim. Yine de Guice-Servlet'in filtresinin çalışması için körü körüne hata ayıklamak zorunda kaldım ama buna eklenen her şey işe yarıyor gibi görünüyor.
benstpierre

1
Yığın izlerinin stdout'a gittiği ancak Intellij Tomcat için stdout'u okumadığı görülüyor. tomcat.apache.org/tomcat-6.0-doc/logging.html Intellij'in görüntüleyebilmesi için tomcat'de bir dosyaya yönlendirmede stdout yapmam gerekiyor.
benstpierre

Yanıtlar:


138

Tomcat'in oluşturduğu localhost_yyyy_mm_dd.logOR localhost.yyyy-mm-dd.loggünlüklerini kontrol edin , bunlar genellikle bu tür bilgileri depolar. Tüm yığın izlemenin standart olarak dışarı atılmasını beklemem.


Tomcat 5.5 örneğim bu dosyayı yazmıyor.
Arne Evertsson

3
Şu ana kadar "error filterStart" kabuslarımı rahatsız etti ... ARTIK HAYIR! Harikasın!
Cody S

Geliştirme sırasında keşfetmekten memnun olduğunuz şeylerden biri. Çok teşekkürler.
Francisco Lozano

Tomcat 6'm (varsayılan kurulum ile) dosyaya hiçbir şey yazmıyor, neyin yanlış gittiğini okumak için ConsoleHandler'ı açmak zorunda kaldım ve bu istisnaları Catalina çıktı dosyasına yazdı.

2
@mattblang, $ TOMCAT_HOME / conf / logging.properties'e bir göz atın. Varsayılan kurulum sezgiseldir.
matt b

80

WEB-INF / sınıflarında aşağıdaki içeriğe sahip logging.properties adlı bir dosya oluşturun:

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

WEB-INF'de bir sınıf dizininiz yoksa, sadece bir tane oluşturabileceğinizi ve iyi çalışacağını unutmayın.
Muhd

21

Tomcat yığın izini günlüğe kaydeder, ancak tomcat bir IDE'den başlatıldığında günlük dosyalarının nerede olduğu her zaman net değildir. IntelliJ'den başlattığımda, CATALINA_BASEolarak ayarlandı ${home}/.IntelliJIdea10/system/tomcat/Unnamed_r6-ideave günlük dosyaları içeride [CATALINA_BASE]/logs.

Günlükleri görmek için günlük dosyalarını bulun veya [CATALINA_HOME]/conf/logging.propertiestomcat logger çıktısını konsola yönlendirmek için düzenleyin . Aşağıda, varsayılan tomcat yapılandırmasına ikinci bir işleyici ekledim:

 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

Şimdi tam yığın izleme IntelliJ çıktısında görünür:

 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

dosyaları kopyalaman gerekiyor

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

ve sonra tomcat'i yeniden başlatın


3
yay, bu beni kurtardı! . Ayrıca /path/to/solr/example/resources/log4j.properties dosyasına bakmak ve günlük dizininizi düzenlemek
user9869932

5

Belki uygulamanız Tomcat'ten farklı bir JRE ile derlenmiştir.

java -versionSunucunuzu kontrol edin ve ardından kodunuzu aynı sürümle derleyin. Hata aldım çünkü Eclipse standart JRE 1.6 idi ve Tomcat 1.5 kullandı - bu işe yaramaz.


2

CentOS 6 ve Solr 4.4.0'da

Bu hatanın giderilmesi için bazı lib dosyalarını derlemem gerekiyordu

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

Bu benim için de sorunu çözdü. Ubuntu 14.04 ve solr 4.8.1 ve tomcat 7.
cjungel

2

Genellikle localhost. [Tarih] .log'da sorunla ilgili bir bilgi vardır. Ancak bazen bu günlükte hiçbir şey yoktur. Bu, projenin karmaşık konfigürasyonu varsa gerçekleşebilir (birkaç geliştirici üzerinde uzun süre çalıştı ve her biri kendisinden bir şeyler ekledi). Bu problemle günlükte herhangi bir bilgi OLMADAN karşılaştım. Oldukça hızlı ve sağlam bir yaklaşım:

  1. Herhangi bir soruna neden olabilecek her şeyi web.xml'den kaldırmaya çalışın. Hatta etiket dışındaki her şeyi kaldırabilirsiniz. Uygulama hala konuşlandırılamıyorsa - devam edin.

  2. WEB-INF / sınıflarından her * .xml tanımlayıcısını kaldırın. Uygulama dağıtılamıyorsa - devam edin.

  3. Savaşınızda bulabileceğiniz tüm kayıt yapılandırmasını kaldırın (logging.properties, log4j.properties). Dağıtmayı deneyin. Bu adımda daha fazla bilgilendirici hata aldım, ancak dağıtım hala başarısız oldu.

Bu hatayı araştırdıktan sonra, projenin Tomcat'in sürümüyle (daha yeni olan) çakışan ve uygulanacak uygulamanın bulunmadığı xerces'in eski sürümünü içerdiğini öğrendim. Web uygulamasında xerces yükseltildikten sonra her şey yoluna girdi.


1

Tomcat için log4j günlük kaydını ayarlamak oldukça basittir. Aşağıdakiler http://tomcat.apache.org/tomcat-5.5-doc/logging.html adresinden alıntılanmıştır :

  1. Aşağıdaki içeriğe sahip log4j.properties adlı bir dosya oluşturun ve bunu ortak / sınıflara kaydedin.

              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'yi (v1.2 veya üstü) indirin ve log4j kavanozunu $ CATALINA_HOME / common / lib içine yerleştirin.

  3. Commons Logging'i indirin ve log4j jar ile commons-logging-xyzjar'ı (commons-logging-api-xyzjar değil) $ CATALINA_HOME / common / lib içine yerleştirin.
  4. Tomcat'i başlatın

Ayrıca http://wiki.apache.org/tomcat/FAQ/Logging adresine de göz atmak isteyebilirsiniz.


Bu, dağıtım istisnalarının gerçekten düzgün şekilde günlüğe kaydedilmesine neden olur mu?
benstpierre

Evet. Bu kesin yöntemi, dağıtım sırasında sorunların nedenlerini bulmak için kullandım.
Tommi

1
Maalesef günlük dosyası bir DEBUG günlük düzeyiyle aşılamaz. Sorunla ilgisi yok gibi görünen birkaç istisna içeriyor - ki benim durumumda bir Struts sorunu olduğundan şüpheleniyorum.
Arne Evertsson

1

Herhangi biri SEVERE gibi bir hata alıyorsa: Error filterStart Apr 29, 2013 4:49:20 PM org.apache.catalina.core.StandardContext startInternal SEVERE: Context [/ TraceMW] başlatma önceki hatalar nedeniyle başarısız oldu

sonra lütfen tomcat / lib dizininizin cors-filter-1.5.jar içerip içermediğini kontrol edin . Eğer nokta varsa yukarıdaki hatayı alırsınız ve uygulamanız kullanılamaz.

Bu yüzden, jar dosyasını diğer tomcat klasöründen kopyalamayı başardım ve daha sonra yukarıda belirtilen hatayı almadım.


1

Ben de aynı hatayı aldım ve bu sorunu çözmek için çok uğraştım. Google'da biraz zaman harcadım ve aşağıdaki çözümü buldum ve sorunum çözüldü.

sorun, dağıtım yolundaki eksik Struts2 Kitaplıklarından kaynaklanıyordu. İnsanların çoğu kitaplıkları derleme için koyabilir ve çalışma zamanı için gerekli kitaplıkları eklemeyi unutabilir. Bu yüzden aynı kitaplıkları web dağıtım derlemesine ekledim ve sorun KAPALI idi.


1

Tomcat'e yerleştirildikten sonra uygulamayı başlatamadığım için aynı sorunu yaşadım. Ancak, Struts kavanoz setini CATALINA_HOME \ lib (Tomcat dizin) dizinine kopyaladığımda çözüldü. Bu kavanozları WEB_INF \ lib'nizde bulundurmanız gerekmez, ancak bunları Yapı Yolunuzda bulundurmanız gerekir.

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

Son bir saatini neredeyse aynı bir sorun üzerinde geçirdikten sonra katkıda bulunmak istedim. Benim çözümüm, .jar uygulamalarımızın bir şekilde bozulmuş olmasıydı, bu nedenle kavanozu dev sunucumuzdan yerleştirmek bir düzeltme sağladı.


0

Benzer bir sorun yaşadım. Renato'nun bahşişi benim için çalıştı. Java sınıf dosyalarının eski bir sürümünü kullandım (WEB-INF / sınıflar klasörü altında) ve sorun ortadan kalktı. Yani, derleyici sürüm uyumsuzluğu olmalıydı.


0

Bu benim için hile yaptı: Sadece tüm kitaplıkları kaldırın ve ardından derleyin ve çalıştırın. Projenizdeki hataların onaylanmasını ister. Kitaplıkları uyguladıktan sonra projeyi yeniden çalıştırın.


0

Genel olarak Sunucu JDK sürümü, konuşlandırılan uygulamadan daha düşük olacaktır (daha yüksek jdk sürümü ile oluşturulmuştur)


-1

Terminalde katalina günlüklerini göstermek için Aşağıdaki komutu çalıştırın ---

sh start-camunda.sh; tail -f server/apache-tomcat-8.0.24/logs/catalina.out
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.