2014-10-21 5 views
0

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

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

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 баночку для подключения, но нет ни одного файла почтового индекса, и я подумал, что bliki-core.jar должен его содержать.

Любые предложения?

+1

не является 'HttpMethod' из библиотеки Apache Commons? – dazito

+0

Ошибка была вызвана «User user = new User (« "," "," ")"; Итак, я полагаю, это пытается сделать http-вызов? – JudyJiang

+0

загрузить http://www.java2s.com/Code/Jar/o/Downloadorgapachecommonshttpclientjar.htm jar и добавить в свой путь к классам –

ответ

0

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

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

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

0

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

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

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

В Eclipse сделать:

  1. File> New> Other> Maven Project

  2. Выберите 'Создать простой проект' флажок.

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

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

  5. Щелкните правой кнопкой мыши по проекту и выберите проект «Maven> Update».

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

<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>