Как остановить интегрированную систему - PullRequest
0 голосов
/ 19 ноября 2018

Контекст: я пытаюсь настроить интегрант, чтобы я мог остановить и запустить мой джет-сервер

Я получаю: IllegalArgumentException Не знаю, как создать ISeq из: clojure.lang.Var $ Unbound clojure.lang.RT.seqFrom (RT.java:542)

При попытке остановить мою интегрированную систему.

Мой код:

(defn handler [request]
{:status 200
 :headers {"Content-Type" "text/html"}
 :body "Hello World!"})

(def config
    {:handlers/system {:port 3000
                       :host "localhost"
                       :join? true
                       :http? true
                       :ssl? false}})

(defmethod ig/init-key :handlers/system [_ cfg]
  (jetty/run-jetty handler cfg))

(defmethod ig/halt-key! :handlers/system [_ server]
    (.stop server))

(defn start []
    (def sys (ig/init config)))

(defn stop []
    (ig/halt! sys))

(defn resume []
    (ig/resume config sys))

(defn reset []
    (stop)
    (start))

Что я делаю не так?

1 Ответ

0 голосов
/ 20 ноября 2018

Проблема была в конфиге где: присоединиться? был установлен в true. Это блокировало процесс и означало, что после использования ctrl + c в repl sys не было установлено возвращаемое значение (ig / init config), и поэтому при вызове stop он пытался вызвать .stop для unbound fn, вызывая ошибку, указанную в OP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...