Open3
java.lang.NullPointerException: Response map is nil
java.lang.NullPointerException: Response map is nil
エラーに悩まされている
:dependencies [[org.clojure/clojure "1.10.1"]
[javax.servlet/servlet-api "2.5"]
[ring "1.9.4"]
[metosin/reitit "0.5.15"]
[metosin/muuntaja "0.6.8"]]
で、
(ns myapp.core
(:require
[ring.adapter.jetty :as jetty]
[reitit.ring :as ring]))
(defn handler [req]
{:status 200
:headers {"Content-Type" "text/plain; charset=utf-8"}
:body "Hello"})
(def app
(ring/ring-handler
(ring/router
["/"
["" handler]])))
(defn start []
(jetty/run-jetty app {:port 3333
:join? false}))
(comment
(def server (start))
(.stop server)
;;
)
これでサーバーを立ち上げ http://localhost:3333/ へ行くと、Helloは表示されるがログに
java.lang.NullPointerException: Response map is nil
が出力されるのにずっと悩んでる。
このExceptionは、ring/ring-handler
を使うと出てしまう。つまり
(defn start []
(jetty/run-jetty handler {:port 3333
:join? false}))
であれば、問題ない。
こちらのポストを参考に
dependencies をこのように変えて、
:dependencies [[org.clojure/clojure "1.10.1"]
;; [javax.servlet/servlet-api "2.5"]
[info.sunng/ring-jetty9-adapter "0.17.9" :exclusions [org.slf4j/slf4j-api]]
[ring "1.9.4"]
[metosin/reitit "0.5.15"]
[metosin/muuntaja "0.6.8"]
[spootnik/unilog "0.7.31"]]
jetty9
を使うようになったら、java.lang.NullPointerException: Response map is nil
はでなくなった。
(ns myapp.core
(:require
;; [ring.adapter.jetty :as jetty]
[ring.adapter.jetty9 :as jetty9]
[reitit.ring :as ring]))
(defn handler [req]
{:status 200
:headers {"Content-Type" "text/plain; charset=utf-8"}
:body "Hello "})
(def app
(ring/ring-handler
(ring/router
["/"
["" handler]])))
(defn start []
(jetty9/run-jetty app {:port 3333
:join? false}))
(comment
(def server (start))
(.stop server)
;;
)
わたしが全然分かってないことが、わかった