2011-10-31 28 views
25

Dường như có một vấn đề bắt đầu ứng dụng Java của tôi:java.lang.NoClassDefFoundError: org/apache/juli/đăng nhập/LogFactory

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory at org.apache.catalina.util.LifecycleBase.(LifecycleBase.java:37) Caused by: java.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ... 1 more

Cố gắng giải pháp ở đây: java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory

Nhưng tôi thấy tomcat -juli.jar rồi. Ngoài ra tôi đang sử dụng Tomcat 7. Điều gì có thể sai?

Trả lời

15

Vm của bạn không tìm thấy lớp học org/apache/juli/logging/LogFactory kiểm tra xem lớp này có trong tomcat-juli.jar mà bạn sử dụng (giải nén và tìm tệp), nếu nó không có tải xuống thư viện từ trang web apache khác nếu nó hiện diện đặt tomcat-juli.jar trong một đường dẫn (thư mục lib) mà Tomcat sử dụng để nạp các lớp. Nếu Tomcat của bạn không tìm thấy nó, bạn có thể sao chép jar trong thư mục lib của JRE mà bạn đang sử dụng.

0

Trong trường hợp của chúng tôi, phiên bản sai của trình cắm thêm Sysdeo Tomcat dành cho Eclipse 3.5 đã được sử dụng. Việc sửa chữa:

  • Sử dụng tomcatPluginV33 thay vì tomcatPluginV321 (giải nén ra C:\eclipse\dropins)
  • Đảm bảo rằng DevloaderTomcat7.jar được đặt trong tomcat lib thư mục
  • Trong Window> Preferences> Tomcat, thiết lập các phiên bản Tomcat để 7.x

Sự cố này có thể là duy nhất đối với môi trường của chúng tôi; nhưng, tôi sẽ ghi lại nó ở đây, vì lợi ích của hậu thế.

7

Nếu bạn đang sử dụng jsvc để chạy tomcat dưới dạng tomcat (chạy /etc/init.d/tomcat làm thư mục gốc), hãy chỉnh sửa /etc/init.d/tomcat và thêm $CATALINA_HOME/bin/tomcat-juli.jar đến CLASSPATH.

8

Điều này xảy ra với tôi vì tôi đang sử dụng tệp Tomcat 5,5 catalina.sh với cài đặt Tomcat 7. Sử dụng catalina.sh đi kèm với cài đặt Tomcat 7 đã khắc phục được sự cố.

+0

Đây không phải là câu trả lời. Điều này nên có được trong ý kiến. –

+6

@AdityaSingh ** Đây là ** câu trả lời. nó bao gồm chẩn đoán vấn đề và đặc điểm kỹ thuật của một giải pháp. Nó sẽ xảy ra là ** succint ** - không thể loại bỏ nó. – javadba

7

Tôi gặp sự cố này khi sử dụng tomcat-embed-core::7.0.47, từ Maven. Tôi không chắc tại sao họ không thêm tomcat-util làm phụ thuộc thời gian chạy, vì vậy tôi đã thêm phụ thuộc thời gian chạy của riêng mình vào dự án của riêng tôi.

<dependency> 
    <groupId>org.apache.tomcat</groupId> 
    <artifactId>tomcat-util</artifactId> 
    <version><!-- version from tomcat-embed-core --></version> 
    <scope>runtime</scope> 
</dependency> 
+0

Giúp đỡ rất nhiều, sử dụng Spring Boot với phiên bản Servcat 3.0 tương thích của Tomcat. Tôi phải thêm điều này, cảm ơn! (Tôi đang ở phạm vi "cung cấp" hiện tại mặc dù). – electrotype

0

Trên Ubuntu 14.04 LTS

/usr/share# mv /opt/tomcat/apache-tomcat-7.0.56/ tomcat7 

cố định vấn đề đối với tôi. Có một liên kết tượng trưng ở đó đến/opt. Bên trong thư mục đó, tại đó các liên kết ../../java không trỏ đến/usr/share/java vì các tệp này nằm trong/opt

3

Tôi có cùng sự cố, Điều đã giúp tôi là:

  1. Nhấp chuột phải vào dự án.
  2. Nhấp vào 'Thuộc tính'
  3. Đến 'Java Build Path'
  4. Và sau đó: 'Libraries'
  5. Trong đó, Click: Thêm Chum ngoài
  6. Địa chỉ: '' Đường dẫn/Tới/Tomcat/Bin/tomcat-juli.jar

Xong.

Các vấn đề liên quan