Nhật ký khởi động Tomcat - SEVERE: Bộ lọc lỗi Bắt đầu cách lấy dấu vết ngăn xếp?


96

Khi khởi động Tomcat, tôi gặp lỗi sau:

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

Có vẻ kỳ lạ là các bản ghi cho Tomcat sẽ không bao gồm dấu vết ngăn xếp. Ai đó có gợi ý về cách tăng đăng nhập trong Tomcat để lấy dấu vết ngăn xếp cho các lỗi như thế này không?


1
Tôi đang sử dụng Guice-Servlet và bằng cách thử / bắt xung quanh phương pháp thiết lập của tôi cho khung công tác này, tôi đã có thể nắm bắt tất cả các ngoại lệ và ném lại chúng sau khi tự đăng nhập. Tôi vẫn phải gỡ lỗi một cách mù quáng để bộ lọc của Guice-Servlet hoạt động nhưng mọi thứ được thêm vào đó dường như chỉ hoạt động.
benstpierre

1
Có vẻ như ngăn xếp theo dõi goto stdout nhưng Intellij không đọc stdout cho Tomcat. tomcat.apache.org/tomcat-6.0-doc/logging.html Tôi cần tạo stdout trong chuyển hướng tomcat đến một tệp để Intellij có thể xem nó.
benstpierre

Câu trả lời:


138

Kiểm tra nhật ký localhost_yyyy_mm_dd.logHOẶC localhost.yyyy-mm-dd.logmà Tomcat tạo, chúng thường lưu trữ loại thông tin đó. Tôi sẽ không mong đợi toàn bộ stacktrace được bán ra theo tiêu chuẩn.


Phiên bản Tomcat 5.5 của tôi không ghi tệp đó.
Arne Evertsson

3
Cho đến thời điểm này "error filterStart" đã cản trở cơn ác mộng của tôi ... KHÔNG CÒN LẠI! Bạn rock!
Cody S

Một trong những điều bạn rất vui khi phát hiện ra trong quá trình phát triển. Cám ơn rất nhiều.
Francisco Lozano

Tomcat 6 của tôi (với thiết lập mặc định) không bao giờ ghi bất kỳ thứ gì vào tệp, tôi phải bật ConsoleHandler để đọc những gì đã xảy ra và điều đó đã ghi các ngoại lệ trong tệp đầu ra Catalina.

2
@mattblang hãy xem $ TOMCAT_HOME / conf / logging.properties. Thiết lập mặc định là phản trực quan
matt b

80

tạo một tệp có tên logging.properties trong WEB-INF / lớp với nội dung sau:

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

Lưu ý rằng nếu bạn không có thư mục lớp trong WEB-INF, bạn có thể tạo một thư mục và nó sẽ hoạt động tốt.
Muhd

21

Tomcat thực hiện ghi lại stacktrace, nhưng không phải lúc nào cũng rõ ràng vị trí của các tệp nhật ký, khi tomcat được khởi động từ IDE. Khi tôi khởi động nó từ IntelliJ, CATALINA_BASEđược đặt thành ${home}/.IntelliJIdea10/system/tomcat/Unnamed_r6-idea, và các tệp nhật ký được đăng nhập [CATALINA_BASE]/logs.

Để xem nhật ký, hãy xác định vị trí tệp nhật ký hoặc chỉnh sửa [CATALINA_HOME]/conf/logging.propertiesđể chuyển trực tiếp đầu ra của trình ghi nhật ký tomcat tới bảng điều khiển. Dưới đây, tôi đã thêm một trình xử lý thứ hai vào cấu hình tomcat mặc định:

 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

Bây giờ stacktrace đầy đủ xuất hiện trong đầu ra 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

bạn cần sao chép các tệp

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

và sau đó khởi động lại tomcat


3
yay, điều này đã cứu tôi! . Ngoài ra nó sẽ là một ý tưởng tốt để nhìn vào /path/to/solr/example/resources/log4j.properties và chỉnh sửa thư mục đăng nhập của bạn
user9869932

5

Có thể ứng dụng của bạn được biên dịch bằng JRE khác với Tomcat.

Kiểm tra java -versiontrên máy chủ của bạn và sau đó biên dịch mã của bạn với cùng một phiên bản. Tôi đã gặp lỗi vì JRE tiêu chuẩn Eclipse của tôi là 1.6 và Tomcat đã sử dụng 1.5 - điều này không thể hoạt động.


2

Trong CentOS 6 và Solr 4.4.0

Tôi đã phải comp một số tệp lib để giải quyết lỗi này

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

Điều này cũng giải quyết vấn đề cho tôi. Ubuntu 14.04 và solr 4.8.1 và tomcat 7.
cjungel

2

Thông thường có một thông tin về sự cố trong localhost. [Date] .log. Nhưng đôi khi không có gì trong nhật ký này. Điều này có thể xảy ra nếu có cấu hình dự án bị nhầm lẫn (một số nhà phát triển đã làm việc trên nó trong một thời gian dài và mỗi người đã thêm một số thứ từ chính mình). Tôi phải đối mặt với vấn đề này mà KHÔNG có bất kỳ thông tin nào trong nhật ký. Cách tiếp cận khá nhanh và mạnh mẽ:

  1. Cố gắng xóa mọi thứ có thể gây ra bất kỳ sự cố nào khỏi web.xml. Bạn thậm chí có thể xóa mọi thứ ngoại trừ thẻ. Nếu ứng dụng vẫn không thể được triển khai - hãy tiếp tục.

  2. Xóa mọi bộ mô tả * .xml khỏi WEB-INF / lớp. Nếu ứng dụng không thể được triển khai - hãy tiếp tục.

  3. Loại bỏ tất cả cấu hình ghi nhật ký bạn có thể tìm thấy trong cuộc chiến của mình (logging.properties, log4j.properties). Cố gắng triển khai. Ở bước này, tôi gặp nhiều lỗi thông tin hơn, nhưng việc triển khai vẫn không thành công.

Sau khi googling cho lỗi này, tôi phát hiện ra rằng dự án bao gồm phiên bản xerces cũ, xung đột với phiên bản của Tomcat (mới hơn) và ứng dụng không được triển khai. Sau khi nâng cấp xerces trong ứng dụng web, mọi thứ đều trở nên tốt đẹp.


1

Thiết lập ghi nhật ký log4j cho Tomcat khá đơn giản. Phần sau được trích dẫn từ http://tomcat.apache.org/tomcat-5.5-doc/logging.html :

  1. Tạo một tệp có tên là log4j.properties với nội dung sau và lưu nó vào common / class.

              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. Tải xuống Log4J (v1.2 trở lên) và đặt jar log4j vào $ CATALINA_HOME / common / lib.

  3. Tải xuống Commons Logging và đặt commons-logging-xyzjar (không phải commons-logging-api-xyzjar) trong $ CATALINA_HOME / common / lib với jar log4j.
  4. Khởi động Tomcat

Bạn cũng có thể muốn xem tại http://wiki.apache.org/tomcat/FAQ/Logging


Nguyên nhân này sẽ triển khai các ngoại lệ để thực sự ghi nhật ký đúng cách?
benstpierre

Đúng. Tôi đã sử dụng phương pháp chính xác này để tìm nguyên nhân của sự cố trong quá trình triển khai.
Tommi

1
Tôi xin lỗi nhưng tệp nhật ký không thể xâm nhập được với cấp độ nhật ký GỠ LỖI. Nó chứa một vài ngoại lệ mà dường như không liên quan gì đến vấn đề - mà tôi nghi ngờ là vấn đề Struts trong trường hợp của tôi.
Arne Evertsson

1

nếu có ai gặp lỗi như SEVERE: Lỗi bộ lọc Bắt đầu ngày 29 tháng 4 năm 2013 4:49:20 PM org.apache.catalina.core.StandardContext startInternal SEVERE: Khởi động Context [/ TraceMW] không thành công do các lỗi trước đó

sau đó hãy kiểm tra xem thư mục tomcat / lib của bạn có chứa cors-filter-1.5.jar hay không. nếu bạn chấm có u sẽ gặp lỗi trên và ứng dụng của bạn sẽ không khả dụng.

Vì vậy, tôi vừa quản lý để sao chép tệp jar từ thư mục tomcat khác và tôi không gặp lỗi được đề cập ở trên sau đó.


1

Tôi cũng gặp lỗi tương tự và phải vật lộn rất nhiều trong việc khắc phục sự cố này. Đã dành một chút thời gian để tìm kiếm trên Google và tìm thấy giải pháp sau và vấn đề của tôi đã được giải quyết.

vấn đề là do, thiếu Thư viện Struts2 trong đường dẫn triển khai. Hầu hết mọi người có thể đặt các thư viện để biên dịch và có xu hướng quên đính kèm các thư viện cần thiết cho thời gian chạy. Vì vậy, tôi đã thêm các thư viện tương tự trong hội đồng triển khai web và sự cố đã TẮT.


1

Tôi gặp sự cố tương tự, không thể khởi động ứng dụng sau khi nó được triển khai trong tomcat. Tuy nhiên, khi tôi sao chép bộ lọ Struts vào thư mục CATALINA_HOME \ lib (Tomcat dir) thì nó đã được giải quyết. Bạn không cần phải có các lọ này trong WEB_INF \ lib của mình nhưng bạn cần có chúng trong Đường dẫn xây dựng của mình.

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

Chỉ muốn đóng góp sau khi dành giờ cuối cùng cho một vấn đề gần giống hệt nhau. Giải pháp của tôi là bằng cách nào đó ứng dụng .jar của chúng tôi bị hỏng, vì vậy việc đặt jar từ máy chủ nhà phát triển của chúng tôi đã cung cấp một bản sửa lỗi.


0

Tôi đã có một vấn đề tương tự. Mẹo của Renato có hiệu quả với tôi. Tôi đã sử dụng phiên bản cũ hơn của tệp lớp java (trong thư mục WEB-INF / lớp) và sự cố đã biến mất. Vì vậy, đáng lẽ ra phiên bản trình biên dịch không khớp.


0

Điều này đã giải quyết vấn đề cho tôi: Chỉ cần xóa tất cả các thư viện, sau đó biên dịch và chạy. Nó sẽ nhắc họ là lỗi trong xác nhận dự án của bạn. Chạy lại dự án sau khi áp dụng các thư viện.


0

Nói chung, phiên bản JDK của Máy chủ sẽ thấp hơn so với ứng dụng đã triển khai (được xây dựng với phiên bản jdk cao hơn)


-1

Chạy lệnh sau để hiển thị nhật ký catalina trên thiết bị đầu cuối ---

sh start-camunda.sh; tail -f server/apache-tomcat-8.0.24/logs/catalina.out
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.