не могу запустить кольцо с Лейном

Я пробую свой первый пробег с помощью ring и lein, и у меня возникают проблемы с его запуском. Я взял этот пример из книги «Веб-разработка с Clojure», глава 1, а также из https://quickleft.com/blog/your-first-clojure-web-app/. Код с обоих сайтов выдает одну и ту же ошибку - Class Not Found.

У меня есть следующий project.clj

(defproject myfirstwebapp "0.1.1"
   :description "A hello world for a Ring based web app"
   :dependencies [[org.clojure/clojure "1.8.0"]
             [ring "1.4.0"]]
   :plugins [[lein-ring "0.9.7"]]
   :dev-dependencies [[lein-ring "0.9.7"]]
   :ring {:handler myfirstwebapp.core/app})

И следующий core.clj

(ns myfirstwebapp.core)
(defn app [req]
  {:status 200
   :headers {"content-Type" "text/html"}
   :body "Hello World!"})

Я выполнил следующие команды:

lein new myfirstwebapp
edit project.clj as above
cd myfirstwebapp
lein deps
edit src/myfirstwebapp/core.clj as above
lein ring server

И теперь я получаю такие ошибки, как:

Исключение в потоке «main» java.lang.ClassNotFoundException: leiningen.core.project $ reduce_repo_step, компиляция: (C: \ Users \ ROG \ form-init7789757414629005682.clj: 1: 17608)

Есть ли несоответствия между версиями различных компонентов, которые я использую? Или что-то другое?


person R71    schedule 09.02.2016    source источник
comment
Первоначально я подозревал, что это может быть проблема с локальным хостом на моем Windows-7. Поэтому я включил его, используя предложение stackoverflow / 24340450. Но я все равно получаю ошибку "класс не найден".   -  person R71    schedule 09.02.2016
comment
какую версию lein вы используете?   -  person DanLebrero    schedule 09.02.2016
comment
lein 2.6.0. Кроме того, я подозревал, что моя java несовместима, поэтому я перешел с java6 на java7u79. Та же ошибка.   -  person R71    schedule 09.02.2016
comment
строка Hello World! отсутствует заключительная цитата. Это ошибка вставки?   -  person DanLebrero    schedule 09.02.2016
comment
Спасибо. Да, в строке тоже отсутствовала кавычка. Починил это.   -  person R71    schedule 09.02.2016


Ответы (1)


Это ошибка в lein 2.6.0. Исправлено в 2.6.1

person DanLebrero    schedule 09.02.2016
comment
У меня есть еще один вопрос о запуске веб-сервера из lein: как остановить процесс? Я нажал ctrl-c, но потом не могу запустить снова, если не перезагружу систему. - person R71; 09.02.2016
comment
Это проблема Windows. Lein по умолчанию запускает 2 JVM, а в Windows ^ c просто убивает основную, оставляя JVM, на которой запущен сервер, запущенной. У меня больше нет Windows, но я пытаюсь запустить lein trampoline ring server. Это должно запустить только одну JVM. Если это не сработает, вам нужно будет найти java-процесс в администраторе процесса и вручную убить его. - person DanLebrero; 09.02.2016
comment
Еще раз спасибо. Но похоже, что он автоматически находит следующий порт (перемещается с 3000 на 3001 и запускается снова), но выдает сообщение об ошибке, что выглядит плохо. - person R71; 09.02.2016
comment
Сначала убейте все java-процессы и попробуйте lein trampoline ring server и ^ C - person DanLebrero; 09.02.2016