kli*_*ron 3 clojure war compojure
我正在执行lein uberwar我的测试webapp,我收到以下奇怪的错误:
Exception in thread "main" java.lang.ClassCastException: java.lang.Boolean cannot be cast to clojure.lang.Symbol (servlet.clj:1)
Run Code Online (Sandbox Code Playgroud)
servlet.clj包含以下内容:
(ns test.servlet
(:use ring.util.servlet)
(:require test.routes :as routes)
(:gen-class :extends javax.servlet.http.HttpServlet))
(defservice routes/app-routes)
Run Code Online (Sandbox Code Playgroud)
test.routes文件包含:
(ns test.routes
(:use compojure.core)
(:require [compojure.route :as route]
[compojure.handler :as handler]))
(defroutes app-routes
(GET "/" [] {:status 200
:headers {"Content-Type" "text/html"}
:body "<h1>Hello World</h1>"})
(route/files "/" {:root "static"})
(ANY "/:s" [s] (str "page-not-found" s)
;; For lein ring-server
;(def test-handler
; (handler/site app-routes))
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我替换线
(:require test.routes :as routes)
Run Code Online (Sandbox Code Playgroud)
附:
(:require test.routes)
Run Code Online (Sandbox Code Playgroud)
并致电
(defservice test.routes/app-routes)
Run Code Online (Sandbox Code Playgroud)
在servlet.clj中,WAR编译良好,并且它在tomcat中完美运行.我的代码中是否有一些我看不到的错误?为什么我需要调用test.routes/...而不仅仅是路由/ ...?
| 归档时间: |
|
| 查看次数: |
854 次 |
| 最近记录: |