2011-03-23 29 views
7

mùa xuân này némgì sai cho lỗi khung

Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V 
    at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:159) 
    at org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:454) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:392) 
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93) 

lý do là gì?

Trả lời

8

Lý do là phiên bản sai của thư viện được thêm (xung đột phiên bản).

Kiểm tra phiên bản của javadoc slf4j và cố gắng tìm ra, phương pháp này tồn tại với phiên bản nào?

1

Bạn có thể có một lớp học hai lần trong classpath của bạn.

Kiểm tra đường dẫn lớp cho các lần xuất hiện.

2

Nếu bạn đang chạy OSX bạn có thể tìm thấy điều này là bởi vì các tập tin sau đây được bao gồm như là phần mở rộng java:

/Library/Java/Extensions/slf4j-api-1.5.8.jar

/Thư viện /Java/Extensions/slf4j-log4j12-1.5.8.jar

Chúng được tải bởi trình nạp lớp mở rộng, trước trình nạp lớp ứng dụng của bạn, vì vậy chúng sẽ được giải quyết trước tiên.

Tôi không có ý tưởng tại sao đây là có hay khi họ đã được thêm vào nhưng tôi đã chỉ nhìn thấy điều này trên OSX và trong năm ngoái, mà có thể bao hàm sự họ đã được giới thiệu trong java 6.

Bạn có thể loại bỏ \ di chuyển các tệp để giải quyết sự cố, nhưng có thể có một số ứng dụng phụ thuộc vào chúng.

+0

Phát hiện trong trường hợp của tôi! Cảm ơn! –