2016-10-15 22 views
0

boot를 사용하여 실행 중일 때 http-kit 서버로부터 응답을받을 수 없습니다. 그것은 부두와 함께 작동합니다. boot run을 실행하면 언젠가 종료됩니다. 그래서 (boot (wait))은 종료되지 않았지만 서버가 실행되지 않는 것처럼 보입니다. 다음과 같은부팅을 사용하여 http-kit를 실행하는 방법은 무엇입니까?

;boot.clj 
(set-env! 
    :source-paths #{"src"} 
    :dependencies '[[org.clojure/clojure "1.8.0"] 
        [ring "1.5.0"] 
        [compojure "1.5.1"] 
        [http-kit "2.2.0"]]) 

(require '[server.core :as server]) 

(deftask run [] 
    (with-pre-wrap fileset (server/-main) fileset) 
    (boot (wait))) 

답변

0

당신은 boot-http을 사용할 수 있습니다 뭔가 :

; core.clj 
(ns server.core 
    (:use [compojure.route :only [files not-found]] 
      [compojure.handler :only [site]] 
      [compojure.core :only [defroutes GET POST DELETE ANY context]] 
      org.httpkit.server)) 

(defn hello [] 
    "Hello from httpkit") 

(defroutes api-routes 
    (GET "/" [] (hello))) 

(defn -main [] 
    (run-server api-routes {:port 8080})) 

boot.clj 파일

(boot (serve :handler 'server/-main :reload true) (wait)) 
+0

내가 부팅 HTTP 사용이처럼 실행 :'(부팅 (제공 : handler 'server.core/-main : reload true) (wait)))'를 호출합니다. 하지만 부트가 3000시에 부두를 시작하고 URL을로드 할 때'액세스 문제 /가 발생합니다. 이유 : 잘못된 수의 args (1)이 전달되었습니다 : core/-main'. 부팅이 어렵게 만드는 이유를 모르는 상태에서 아주 쉽고 직선적으로 lein을 사용합니다. – boring