2015-02-01 3 views
1

Как добавить необходимый файл jar для пути к классам, используемого проектом?
project.clj копируется ниже:NoClassDefFoundError для clojure-hbase

1 (defproject hbase01 "0.1.0-SNAPSHOT" 
    2 :description "FIXME: write description" 
    3 :url "http://example.com/FIXME" 
    4 :license {:name "Eclipse Public License" 
    5    :url "http://www.eclipse.org/legal/epl-v10.html"} 
    6 :dependencies [[org.clojure/clojure "1.6.0"] 
    7     [clojure-hbase "0.92.4"]]) 

В РЕПЛ я попробовал:

user=> (require '[clojure-hbase.core :as hb]) 

и огрызался:

CompilerException java.lang.NoClassDefFoundError: 
    org/apache/hadoop/conf/Configuration, compiling:(clojure_hbase/core.clj:1:1) 

Я нашел один банку файл /usr/local/hbase/lib/hadoop-common-2.2.0.jar, где класс внутренний класс ... но как добавить этот путь к проекту?

Я прочитал и попробовал lein-localrepo, но он не установился в нужном месте, файл jar будет установлен в папку $username/.m2/repository/hadoop-common.

+0

try '(require ['clojure-hbase.core: as' hb])' – Dima

+0

спасибо за чтение! Оба утверждения одинаковы, поэтому одно и то же сообщение об ошибке. – dag

+0

Можете ли вы разместить то, что находится в вашем ~/.lein/profiles.clj? – pwnyexpress

ответ

0

Первое, что нужно отметить, это то, что у вас есть противоречивые версии clojure. Вы указываете 1.6.0 и clojure-hbase still requires 1.5.1. Вероятно, это может вызвать проблему, которую вы видите.

+0

Я обновил файл project.clj для использования 1.5.1 и повторно протестировал, он ответил с тем же сообщением ..... Он работает для вас? Спасибо! – dag

1

Возможно, вы уже поняли это, но в случае, если кто-то еще ищет эту ошибку. Вам нужно включить банку из проекта Hadoop с классом Configuration, поскольку у HBase есть зависимость от того, что я нашел.

У меня была эта ошибка с Clojure 1.6.0 и HBase 94.26.

Мой project.clj включает в себя:

[org.apache.hbase/hbase "0.94.26"] [org.apache.hadoop/hadoop-core "1.2.1"]

Просто запустите lein deps и вы до гонок.

+0

привет Мэтт и спасибо за подсказку. Добавляя две строки в файле project.clj, кажется ОК, и я могу запустить [lein deps]. – dag

+0

привет Мэтт и спасибо за подсказку. Добавляя две строки в файле project.clj, кажется ОК, и я могу запустить [lein deps]. Можете ли вы использовать API, открытый с помощью [clojure-hbase] (https://github.com/davidsantiago/clojure-hbase)? Он никогда не возвращается: 15/03/25 22:35:11 INFO zookeeper.ClientCnxn: создание сеанса завершено на сервере localhost/127.0.0.1: 2181, sessionid = 0x14c53c42c120008, согласованный таймаут = 40000 – dag

+0

Простите, Даг, я использовал API-интерфейс Apache HBase Java напрямую. Я не использовал ни одну из библиотек обертки в Clojure. –

Смежные вопросы