Как я могу использовать clj-http в riemann.config
Я использую Риман и теперь я пишу свой riemann.config
,
Я хочу использовать clj-http
публиковать все события из потока riemann на мой веб-сервер. Но я не знаю, как импортировать clj-http
от riemann.jar.
Я кодирую (:use clj-http.client)
или же (:require [clj-http.client :as client])
в riemann.config
но получил ошибку:
java.lang.ClassNotFoundException: clj-http.client
Кто-нибудь может мне помочь?
1 ответ
Я делал нечто подобное несколько месяцев назад, и это работало на меня. Я использовал http-kit:
(require '[org.httpkit.client :as http])
Так как http-kit и cli-http доступны в riemann (см. https://github.com/aphyr/riemann/blob/master/project.clj) Вы должны иметь возможность требовать cli-http одинаково:
(require '[clj-http.client :as client])
Проблема в вашей конфигурации заключается в том, что вы используете (:use ... an (:require ...., который предполагается использовать в объявлении пространства имен. Поскольку riemann.config не содержит объявления пространства имен, вы не можете использовать их формы. При звонке
(:use clj-http.client)
вы получаете ClassNotFoundException, потому что clojure пытается вызвать функцию: используйте для clj-http.client, который не может быть найден. Вне декларации пространства имен: use - это просто стандартное ключевое слово без особого значения.