gpt4 book ai didi

clojure - 奇怪的 super war 行为

转载 作者:行者123 更新时间:2023-12-02 18:34:32 24 4
gpt4 key购买 nike

我正在为我的测试 web 应用程序执行 lein uberwar ,但收到以下奇怪的错误:

Exception in thread "main" java.lang.ClassCastException: java.lang.Boolean cannot be cast to clojure.lang.Symbol (servlet.clj:1)

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)

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))

奇怪的是,如果我替换该行

(:require test.routes :as routes)

与:

(:require test.routes)

然后打电话

 (defservice test.routes/app-routes)

在 servlet.clj 中,WAR 编译良好,并且在 tomcat 中完美运行。我的代码中是否存在一些我看不到的错误?为什么我需要调用 test.routes/... 而不仅仅是 paths/...?

最佳答案

您需要将其放入向量中:

(:require [test.routes :as routes])

关于clojure - 奇怪的 super war 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6251614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com