NoClassDefFoundError с Pantomime при попытке запустить pantomime.extract/parse

Я новичок в Clojure и работаю над проектом, в котором я пытаюсь извлечь текст из веб-страниц с помощью Pantomime. Я управляю проектом с помощью Leiningen и редактирую с помощью Eclipse / CCW. Когда я пытаюсь использовать функцию pantomime.extract/extract, я получаю следующую ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.apache.tika.parser.pkg.PackageParser, compiling:(/tmp/form-init7461469090551574085.clj:1:72)
    at clojure.lang.Compiler.load(Compiler.java:7142)
    at clojure.lang.Compiler.loadFile(Compiler.java:7086)
    at clojure.main$load_script.invoke(main.clj:274)
    at clojure.main$init_opt.invoke(main.clj:279)
    at clojure.main$initialize.invoke(main.clj:307)
    at clojure.main$null_opt.invoke(main.clj:342)
    at clojure.main$main.doInvoke(main.clj:420)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.tika.parser.pkg.PackageParser
    at org.apache.tika.parser.pkg.ZipContainerDetector.detect(ZipContainerDetector.java:86)
    at org.apache.tika.detect.CompositeDetector.detect(CompositeDetector.java:61)
    at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:113)
    at pantomime.extract$eval1104$fn__1105.invoke(extract.clj:29)
    at pantomime.extract$eval1087$fn__1088$G__1078__1093.invoke(extract.clj:18)
    at pantomime.extract$eval1116$fn__1117.invoke(extract.clj:53)
    at pantomime.extract$eval1087$fn__1088$G__1078__1093.invoke(extract.clj:18)
    at com.scrape$extract_text.invoke(scrape.clj:26)
    at com.scrape$get_words.invoke(scrape.clj:29)
    at com.sis$main.invoke(sis.clj:6)
    at clojure.lang.Var.invoke(Var.java:375)
    at user$eval5.invoke(form-init7461469090551574085.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6703)
    at clojure.lang.Compiler.eval(Compiler.java:6693)
    at clojure.lang.Compiler.load(Compiler.java:7130)
    ... 11 more
ABRT problem creation: 'success'

Я удостоверился, что включил соответствующую строку зависимости в мой project.clj:

  [com.novemberain/pantomime "2.6.0"]

Я также убедился, что мне требуется пространство имен pantomime.extract в моем пространстве имен:

(ns com.scrape
  (:require  [pantomime.extract :as extract]))

Вот функция, которая вызывает "извлечение":

(defn extract-text [url]
  (:text (extract/parse (java.net.URL. url))))

Я попытался запустить "lein clean" и "lein deps". Я также удалил каталог, в котором leiningen хранит зависимости (~/.m2), и позволил lein автоматически перезагружать все соответствующие файлы jar. Тем не менее, независимо от того, запускаю ли я REPL из командной строки с "lein run" или из Eclipse, я всегда получаю вышеуказанную ошибку.

Почему я получаю эту ошибку и как ее исправить?

ОБНОВИТЬ

Я попытался воссоздать эту проблему в новом проекте с как можно меньшим количеством кода, чтобы опубликовать полный исходный код здесь; однако в новом проекте lein я смог скопировать весь свой код из моего исходного проекта; и я больше не получаю ошибок.

Есть идеи, что могло случиться? Какой-то глюк с leiningen?

0 ответов

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