При использовании данного кода:
package javaapplication;
import com.github.sardine.DavResource;
import com.github.sardine.Sardine;
import com.github.sardine.SardineFactory;
import java.io.IOException;
import java.util.List;
public class JavaApplication {
public static void main(String[] args) throws IOException {
Sardine sardine = SardineFactory.begin("login", "password");
List<DavResource> resources;
resources = sardine.list("http://yourdavserver.com/adirectory/");
for (DavResource res : resources)
{
System.out.println(res);
}
}
}
Возникает ошибка NoClassDefFoundError
:
run: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpEntity at com.github.sardine.SardineFactory.begin(SardineFactory.java:44) at com.github.sardine.SardineFactory.begin(SardineFactory.java:34) at javaapplication.JavaApplication.main(JavaApplication.java:25) Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpEntity at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 3 more C:\Users\Levchenko\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
Подскажите, пожалуйста, почему возникает ошибка. Возможно, я подключил не все библиотеки которые нужны.
Добавил библиотеки. В структуре проекта теперь 3 библиотеки: sardine, httpclient, http core. Вот что получилось:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.apache.http.conn.ssl.AbstractVerifier.(AbstractVerifier.java:61) at org.apache.http.conn.ssl.AllowAllHostnameVerifier.(AllowAllHostnameVerifier.java:44) at org.apache.http.conn.ssl.AllowAllHostnameVerifier.(AllowAllHostnameVerifier.java:46) at org.apache.http.conn.ssl.SSLConnectionSocketFactory.(SSLConnectionSocketFactory.java:146) at com.github.sardine.impl.SardineImpl.createDefaultSecureSocketFactory(SardineImpl.java:1116) at com.github.sardine.impl.SardineImpl.createDefaultSchemeRegistry(SardineImpl.java:1099) at com.github.sardine.impl.SardineImpl.configure(SardineImpl.java:1064) at com.github.sardine.impl.SardineImpl.(SardineImpl.java:203) at com.github.sardine.SardineFactory.begin(SardineFactory.java:44) at com.github.sardine.SardineFactory.begin(SardineFactory.java:34) at javaapplication.JavaApplication.main(JavaApplication.java:25) Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 11 more C:\Users\Levchenko\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
Ошибка NoClassDefFoundError возникает когда класс от которого зависит ваше приложение недоступен при исполнении кода.
Описание ошибки в документации:
Thrown if the Java Virtual Machine or a ClassLoader instance tries to
load in the definition of a class (as part of a normal method call or
as part of creating a new instance using the new expression) and no
definition of the class could be found.
The searched-for class
definition existed when the currently executing class was compiled,
but the definition can no longer be found.
Вольный перевод:
Выбрасывается когда виртуальная машиной Java или загрузчик классов пытается загрузить определение класса (при стандартном вызове метода либо при создании экземпляра класса с конструктора) и при этом определение класса не удалось обнаружить.
Искомое определение класса существовало при компиляции текущего класса, но при исполнении не может быть найдено
Скорее всего ошибка вызвана тем, что одна из библиотек, требуемых для работы вашего приложения не добавлена в classpath.
Для исправления ошибки нужно:
Похожий вопрос в английской версии Stackoverflow:
Ваш пример
В данном случае имя класса org/apache/http/HttpEntity. Он находится в библиотеке Apache HttpComponents Core. Скачать ее можно в репозитории Maven (https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore/4.4.3).
Sardine зависит от библиотеки Apache HttpComponents Client версии 4.5.1, которая в свою очередь зависит от Apache HttpComponents Core версии 4.4.3. Скорее всего Вам понадобится подключить обе эти библиотеки как минимум.
Добавьте библиотеки и попробуйте запустить заново.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Здравствуйте, хотелось бы узнать, по каким технологиям создают облачные сервисы типа Cloud games? Грубо говоря, виртуализация железа или софта,...
ЗдравствуйтеНе так давно, когда изучал TestNG, все работало
В связи с некой архитектурой , получить экземпляр класса в котором инициализирована переменная не могуМогу эту переменную объявить как статик