Clojure 解放者入门
我对clojure和liberator是新手 我试图开始与解放者,但我被困在以下错误 以下是启动Web服务器并定义路由的代码:Clojure 解放者入门,clojure,Clojure,我对clojure和liberator是新手 我试图开始与解放者,但我被困在以下错误 以下是启动Web服务器并定义路由的代码: (ns game-of-life.core (:require [ring.util.response :as resp] [compojure.route :as route] [ring.adapter.jetty :as jetty]) (:use [ring.middleware.multipart-params :only [w
(ns game-of-life.core
(:require
[ring.util.response :as resp]
[compojure.route :as route]
[ring.adapter.jetty :as jetty])
(:use
[ring.middleware.multipart-params :only [wrap-multipart-params]]
[ring.util.response :only [header]]
[compojure.core :only [context ANY routes defroutes]]
[compojure.handler :only [api]]))
(defn assemble-routes []
(->
(routes
(ANY "/" [] (resp/redirect "/index.html"))
(route/resources "/"))))
(def handler
(-> (assemble-routes))
(defn start [options]
(jetty/run-jetty #'handler (assoc options :join? false)))
(defn -main
([port]
(start {:port (Integer/parseInt port)}))
([]
(-main "3000")))
当我运行lein-ring server
时,我会得到一个java.lang.NullPointerException
,其中包含以下堆栈跟踪:
reload.clj:18 ring.middleware.reload/wrap-reload[fn]
clj:17 ring.middleware.stacktrace/wrap stacktrace日志[fn]
clj:80-ring.middleware.stacktrace/wrap-stacktrace-web[fn]
jetty.clj:18-ring.adapter.jetty/proxy处理程序[fn](未知)
Source)ring.adapter.jetty.proxy$org.eclipse.jetty.server.handler.AbstractHandler$0.handle
java:116 org.eclipse.jetty.server.handler.HandlerWrapper.handle
java:363 org.eclipse.jetty.Server.Server.handle
AbstractHttpConnection.java:483 org.eclipse.jetty.server.AbstractHttpConnection.HandlerRequest
AbstractHttpConnection.java:920 org.eclipse.jetty.server.AbstractHttpConnection.headerComplete
AbstractHttpConnection.java:982 org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete
java:635 org.eclipse.jetty.http.HttpParser.parseNext
java:235 org.eclipse.jetty.http.HttpParser.parseAvailable
AsyncHttpConnection.java:82 org.eclipse.jetty.server.AsyncHttpConnection.handle
SelectChannelEndPoint.java:628 org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle
SelectChannelEndPoint.java:52 org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run
java:608 org.eclipse.jetty.util.thread.QueuedThreadPool.runJob
java:543 org.eclipse.jetty.util.thread.QueuedThreadPool$3.run
java:744java.lang.Thread.run
我认为如果你的处理函数得到请求参数,效果会更好。你能试着像这样更改依赖项吗?这些版本和以下配置完全适合我:(包括重新加载) 另外,处理程序应该是
(def handler
(-> (assemble-routes)))
(def handler
(-> (assemble-routes)))