Получение java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory исключение - PullRequest
172 голосов
/ 12 октября 2009

Я выполняю простую программу Spring Dependency Injection и получаю это исключение. Я уже включил файл common-logging1.1.1.jar и spring.jar. Не могли бы вы помочь выйти?

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

Ответы [ 25 ]

3 голосов
/ 14 марта 2017

У меня такая же проблема, как и у вас. Наконец я проверил версию apache, обладающую классом. Я обнаружил, что версия 1.0.4 имеет класс.

Попробуйте использовать версию 1.0.4 вместо 1.1.X или 1.2.X

Мои зависимости:

    <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

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());

Мой результат:

130489168

Проверьте еще раз, что ваши maven-зависимости хорошо импортированы.

3 голосов
/ 24 июля 2015

Два варианта (как минимум):

  1. Добавьте банку регистрации общих файлов в свой файл, скопировав его в локальную папку.

Примечание: связывание jar-файла может привести к проблемам с сервером и, возможно, к причине его добавления в путь сборки, но не к решению проблемы запуска сервера.

Так что не указывайте банку на внешнюю папку.

OR ...

  1. Если вы действительно не хотите добавлять его локально, потому что делите банку между проектами, тогда ...

Если вы используете экземпляр tc-сервера, то вам нужно добавить jar-файл в качестве внешнего jar-файла к экземплярам сервера, на которых запускаются конфигурации.

перейдите к запуску от имени, запустите настройки ..., {ваш экземпляр tc-сервера}, а затем перейдите на вкладку Class Path.

Затем добавьте банку регистрации общего ресурса.

1 голос
/ 30 июля 2012

http://commons.apache.org/logging/download_logging.cgi

используйте этот URL для загрузки JAR-файлов и включения их в путь к классу, проблема будет решена

0 голосов
/ 08 апреля 2018

Я получал ту же ошибку, пока присутствовал сосуд. Решение не сработало. Что работало, так это удаление jar из файловой системы (из каталога .m2), а затем очистка проекта maven.

0 голосов
/ 29 июня 2016

Если вы работаете на Android, обратите внимание, что пакет java.beans на Android не завершен. Чтобы попытаться исправить это на Android, попробуйте следующее:

  1. Загрузка android-java-air-bridge.jar (в настоящее время кнопка загрузки находится внизу страницы или прямая ссылка здесь )
  2. Скопируйте загруженный jar-файл в каталог [APPROOT] / app / libs (или свяжите jar любым другим способом)
  3. Измените операторы import *** на операторы воздушного моста. Например, import javadz.beanutils.BeanUtils вместо import org.apache.commons.beanutils.BeanUtils;
  4. Очистить и восстановить проект

источник 1 , источник 2

Я приношу свои извинения, так как понимаю, что это не совсем правильный ответ на вопрос, хотя эта SO-страница часто появляется при поиске сгенерированных на Android ошибок NoClassDefFoundError: Failed resolution of: beanUtils.

0 голосов
/ 14 октября 2009

Просто проверьте, был ли файл commons-logging.jar добавлен в ваши библиотеки и путь к классам. У меня была такая же проблема, и это было из-за этого. dhammikas-

0 голосов
/ 24 декабря 2009

Обычно я присваиваю classpath переменной, а затем проверяю ее. Я написал небольшой скрипт ruby, который включаю в свои скрипты запуска, который проверяет путь к классу перед запуском java . Проверка пути к классам перед запуском JVM позволила мне сэкономить много времени на устранении подобных проблем.

0 голосов
/ 20 октября 2015

попробуйте добавить эту зависимость org.apache.commons Обще-Exec 1,3

0 голосов
/ 07 октября 2014

Привет, я следовал учебному пособию на tutorialpoint.com. Добавьте после завершения Шаг 2. Установите Apache Common Logging API: Вы должны импортировать в проект внешние библиотеки jar из файлов, загруженных на этом шаге. Для меня имя файла было " commons-logging-1.1.1 ".

0 голосов
/ 16 сентября 2014

Проверьте, правильно ли импортированы банки. Я импортировал их, используя путь сборки. Но он не распознал банку в папке WAR / lib. Позже я скопировал этот же файл в папку war / lib . Теперь работает нормально. Вы можете обновить / очистить свой проект.

...