Java NoClass Обнаружена ошибка

Я пытаюсь использовать Bliki для доступа и анализа вики-страниц. Я просто скачал zip-файл и поместил bliki-core-3.0.19.jar в путь сборки eclipse.

Тем не менее, когда я пытался подключиться, используя пример кода. Там была ошибка. Пример кода здесь:

public static void test(){
    String pageName = "File:Mona Lisa.jpg";
    User user = new User("", "", "http://en.wikipedia.org/w/api.php");
    Connector con = new Connector();
    user = con.login(user);
    List<Page> pages = user.queryImageinfo(new String[]{pageName});
    if(pages != null)
        System.out.println(pages.size());
}

И я получил ошибки как:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/httpclient/HttpMethod
at info.bliki.api.User.<init>(User.java:98)
at info.bliki.api.User.<init>(User.java:71)
at main.wiki.WikiCall.test(WikiCall.java:23)
at main.wiki.WikiCall.main(WikiCall.java:32)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.httpclient.HttpMethod
    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:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 4 more

Кажется, мне не хватает http jar для соединения, но нет ни одного zip-файла, и я подумал, что bliki-core.jar должен его содержать.

Какие-либо предложения?

2 ответа

Эта проблема заключается в том, что даже после добавления HttpClient вы, вероятно, получите другие ошибки, поскольку библиотека Bliki зависит от ряда сторонних библиотек.

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

Как быстрый старт:

В Eclipse делаем:

  1. Файл> Создать> Другое> Maven Project

  2. Установите флажок "Создать простой проект".

  3. Введите my.bliki.project в качестве идентификатора группы и bliki-test в качестве идентификатора артефакта.

  4. Замените содержимое созданного файла pom.xml следующим.

  5. Щелкните правой кнопкой мыши по проекту и выберите "Maven"> "Обновить проект".

Теперь у вас есть проект с Bliki и всеми 3-мя зависимостями на пути сборки (разверните папку Maven Dependencies, чтобы увидеть, что они есть).

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>my.bliki.project</groupId>
    <artifactId>bliki-test</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>info.bliki.wiki</groupId>
            <artifactId>bliki-core</artifactId>
            <version>3.0.19</version>
        </dependency>
    </dependencies>

</project>

Я не знаком с Bliki но из вашей стековой трассировки похоже, что вам не хватает Http Client от Apache Commons,

Вы должны добавить банку в свой проект, и это должно решить проблему.

Получить банку отсюда: http://hc.apache.org/

Другие вопросы по тегам