Java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory özel durumu


188

ben bahar basit Bağımlılık Enjeksiyon programı yürütüyorum ve bu istisna alıyorum. Zaten common-logging1.1.1.jar ve spring.jar dosyasını ekledim. Lütfen yardım etmek için yardım eder misiniz?

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:119)
    at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:55)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:56)
    at com.client.StoryReader.main(StoryReader.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 6 more

2
İlk olarak, sınıf yolunuzun gerçekten doğru olup olmadığını iki kez kontrol edin. İkinci olarak, kavanozu açmayı deneyin ve aslında org.apache.commons.logging.LogFactory sınıfını içerdiğini kontrol edin. Son olarak, sınıf yükleyicide bir kesme noktası ayarlayarak hata ayıklamayı deneyin.
Kolibri

2
Aşağıdaki tüm cevaplar commons-logginggeriye doğru bir adımdır. jcl-over-slf4jBunun yerine kullanın .
opyate

Android'de testCompile 'commons-logging: commons-logging: 1.1.1' uygulamasını app.gradle'a ekle
Roger Garzon Nieto

Yanıtlar:



114

Bağımlılıkları yönetmek için maven kullanıyorsanız, pom.xml dosyasına aşağıdaki satırı ekleyin:

<dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
</dependency>


19

commons-logging-1.1.1.jar ya da jcl-over-slf4j-1.7.6.jar al

Maven kullanıyorsanız, aşağıdaki kodu kullanın.

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>${slf4j.version}</version>
</dependency>

2
Benim için çalışan tek çözüm "jcl-over-slf4j" dahil. Bağımlılıklarımda ortak girişler zaten vardı.
Italo Borssatto

Maven ile bahar-boot sürüm 2.0.1 kullanıyorum. Benim için de işe yarayan tek çözüm buydu.
Carlos Nantes

18

Aynı sorunu yaşadım ve sadece commons-logging.jarsınıf yoluna ekleyerek çözdüm.


8

Commons-logging.jar veya commons-logging-1.1.jar eklemek bunu çözecektir ...


6

Zaten common-logging1.1.1.jar ve dahil ettik ...

JAR dosyasının adını tam olarak doğrulamak istediğinizden emin misiniz? Bence muhtemelen olmalı commons-logging-1.1.1.jar(ekstra not- adında ). Ayrıca dizin adının doğru olup olmadığını da kontrol edin.

NoClassDefFoundError her zaman bir sınıfın bulunamayacağı anlamına gelir, bu nedenle büyük olasılıkla sınıf yolunuz doğru değildir.


2
NoClassDefFoundErrorSınıf başlangıçlarının belirsiz durumlarda başarısız olması gibi diğer köşe durumlarından da kaynaklanabilir.
skaffman

Ayrıca, sınıf örneği başarısız olduğu için bir NoClassDefFoundError alırsa, önce bir ExceptionInInitializerError istisnası almış olmalıdır (tabii ki sessizce yakalanmadığı sürece).
Kolibri

Ve unutmayın "s"commons-logging-1.1.1.jar
Glenn Lawrence

@GlennLawrence Teşekkürler, adı düzeltildi.
Jesper

6

Kapsamı derlemek benim için yaptı

<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.2</version>
  <scope>compile</scope>
</dependency>

1
Durumumu çözdüm. Mockito test senaryolarını çalıştırırken, bu hatayı aldım ve pom.xml'de bu bağımlılığı çözdüm.
venugopal

4

Uygulama herhangi bir eski kütüphane kavanoz kurtulmak için hedef / dağıtım dizini tamamen temiz yapmayı deneyin. Yeni bir yapı oluşturun ve commons-logging.jar dosyasının doğru lib klasörüne yerleştirilip yerleştirilmediğini kontrol edin. Uygulama için kütüphane oluştururken dahil edilmeyebilir.


4

Sorun commons-logging.jar eklenerek çözüldü

Imp dosyaları,

antlr-runtime-3.0.1

org.springframework.aop-3.1.0.M2

org.springframework.asm-3.1.0.M2

org.springframework.aspects-3.1.0.M2

org.springframework.beans-3.1.0.M2

org.springframework.context.support-3.1.0.M2

org.springframework.context-3.1.0.M2

org.springframework.core-3.1.0.M2

org.springframework.expression-3.1.0.M2

commons-logging-1.1.1

3

İki seçenek (en az):

  1. Commons-logging jar dosyasını yerel bir klasöre kopyalayarak dosyanıza ekleyin.

Not: kavanozun bağlanması sunucuyla ilgili sorunlara ve belki de derleme yoluna eklenmesine neden olabilir, ancak sunucu başlatma sorununu çözmez.

Kavanozu harici bir klasöre yöneltmeyin.

VEYA...

  1. Kavanozu projeler arasında paylaştığınız için gerçekten yerel olarak eklemek istemiyorsanız, o zaman ...

Bir tc sunucusu örneği kullanıyorsanız, jar'ı sunucu örneği çalıştırma yapılandırmalarına harici bir kavanoz olarak eklemeniz gerekir.

olarak çalıştır, yapılandırmaları çalıştır ..., {tc sunucu örneğiniz} ve ardından Sınıf Yolu sekmesine gidin.

Sonra ortak günlük kaydı kavanozunu ekleyin.


3

Senden de aynı sorunu yaşıyorum. Sonunda sınıfa sahip apache sürümünü kontrol ettim. 1.0.4 sürümü sınıf var bulundu.

1.1.X veya 1.2.X yerine 1.0.4 sürümünü kullanmayı deneyin.

Bağımlılıklarım:

    <dependencies>
        <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-core</artifactId>
            <version>1.3.5</version>
        </dependency>
        <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-client-java</artifactId>
            <version>1.3.5</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.0.4</version>
        </dependency>
    </dependencies>

Java Kodum

J4pClient j4pClient = new J4pClient("http://localhost:8080/jolokia");
J4pReadRequest req = new J4pReadRequest("java.lang:type=Memory","HeapMemoryUsage");
req.setPath("used");
J4pReadResponse resp = j4pClient.execute(req);
System.out.println(resp.getValue());

Sonucum:

130489168

Ayrıca maven bağımlılıklarınızın iyi içe aktarıldığını bir kez daha kontrol edin.



0

Sadece commons-logging.jar kütüphaneleri ve sınıf yolu eklenmiş olup olmadığını kontrol edin .. Ben aynı sorunu vardı ve bu yüzden oldu. dhammikas-


0

Genellikle sınıf değişkenini bir değişkene atar ve doğrularım. Java başlatmadan önce sınıf yolunu doğrulayan bir başlangıç ​​komut dosyalarına eklediğim küçük bir yakut komut dosyası yazdım . Sınıf yolunu JVM başlamadan önce doğrulamak bana bu tür sorunları gidermek için çok zaman kazandırdı.


2
Bunun yerine Maven gibi araçları kullanmayı düşünmelisiniz.
Neovibrant

0

Hey tutorialpoint.com adresindeki öğreticiyi takip ediyordum. Tamamladıktan sonra ekleyin Adım 2 - Apache Ortak Günlük Kaydı API'sını Yükleyin: Bu adımda indirilen dosyalardan projeye harici jar kitaplıkları almanız gerekir . Benim için dosya adı " commons-logging-1.1.1 " idi.


0

Bunu Android'de çalıştırıyorsanız, görünüşe göre java.beanspaketin Android'de tamamlanmadığını unutmayın . Android'de düzeltmeyi denemek için aşağıdakileri deneyin:

  1. İndir android-java-hava-bridge.jar (şu anda indirme düğmesi sayfası veya alt kısmında ise burada doğrudan bağlantı )
  2. İndirilen kavanozu [APPROOT] / uygulamanıza / kütüphanelerinize kopyalayın dizininize (veya kavanozu başka bir şekilde )
  3. import ***İfadeleri hava köprüsünün ifadesiyle değiştirin . Örneğin import javadz.beanutils.BeanUtils,import org.apache.commons.beanutils.BeanUtils;
  4. Projeyi temizleme ve yeniden oluşturma

kaynak 1 , kaynak 2

Bu SO sayfası android tarafından oluşturulan NoClassDefFoundError: Failed resolution of: beanUtilshataları ararken çok geliyor olsa da, bu tam olarak soruyu cevaplamadığını anladığım için özür dileriz .


0

Kavanoz varken aynı hatayı alıyordum. Hiçbir çözüm işe yaramadı. İşe yarayan, kavanozu dosya sisteminden (.m2 dizininden) silmek ve ardından maven projesini temizlemekti.


0

Tutulma IDE aynı sorun var, benim çözüm: Projem > Özellikler 'i sağ tıklayın

resim açıklamasını buraya girin

Tıklayın Maven ve yazma: kavanoz içinde Aktif Maven Project

resim açıklamasını buraya girin

Son olarak, Uygula ve Kapat


0

Benim durumumda bir Tomcat uygulamasını tutulmada test ediyordum ve bu hatayı aldım. .classpathDosyayı kontrol ederek çözdüm ve bu girişi düzelttim:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>

Özellik org.eclipse.jst.component.dependencyeksikti.


-1

Kavanozların düzgün şekilde ithal edilip edilmediğini kontrol edin. Yapım yolunu kullanarak içe aktardım. Ancak WAR / lib klasöründeki kavanozu tanımadı. Daha sonra aynı kavanozu savaş / lib klasörüne kopyaladım . Şimdi iyi çalışıyor. Projenizi yenileyebilir / temizleyebilirsiniz.


-2

Eğer arkadaşınız herhangi bir sınıf değil, hazırda bekletme kodunda istisna bulduysanız, jar dosyalarının problemidir. Esas olarak iki sorun var
demek istiyorum çalışma eski hazırda bekleme sürümü 3.2 olabilir. U eğer u 3.6 üzerinde deneyin iyi çalışıyor

2. ilk veritabanı bağlantısını kontrol eder. Eğer düzgün çalışan veritabanı ur programında veya jar dosyasında bir hataydı.

IDE denemeye çalıştığınızda lütfen bu iki prioblemi kontrol edin. Netbeanside 6.9 version.here hibernate fine fine kullanıyorum. Sınıf istisna değil herhangi bir hata alamadım ..

Umarım bu daha çok yardımcı olur


-2

Çözüm common-logging.xx jar dosyasını eklemektir


-2

Bu bağımlılığı eklemeyi deneyin org.apache.commons commons-exec 1.3


-3

Her şey başarısız olursa, benim için olduğu gibi, commons-logging-xyzjar'ı Tomcat lib dizininize koymayı deneyin. Sorunu çözdü! BTW, Tomcat 6 kullanıyorum.


adı ne? Neden bahsediyorsun?
Bob
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.