如何在tomcat上主持我的hiccup clojure项目?
我有一个clojure项目,其中我使用了hiccup库。我想问一下,它的工作方式是否与普通clojure和jsp项目类似?当我将它托管在tomcat服务器上并试图在web上运行它时,就会出现文件未找到错误 这是我的project.clj文件如何在tomcat上主持我的hiccup clojure项目?,tomcat,clojure,hiccup,Tomcat,Clojure,Hiccup,我有一个clojure项目,其中我使用了hiccup库。我想问一下,它的工作方式是否与普通clojure和jsp项目类似?当我将它托管在tomcat服务器上并试图在web上运行它时,就会出现文件未找到错误 这是我的project.clj文件 (defproject web-app "0.1.0-SNAPSHOT" :description "FIXME: write description" :url "http://example.com/FIXME" :license {:nam
(defproject web-app "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
[clj-jgit "0.8.10"]
[org.clojure/data.json "0.2.6"]
[clj-yaml "0.4.0"]
[io.forward/yaml "1.0.9"]
[hiccup "1.0.5"]
[compojure "1.6.1"]
[ring/ring-core "1.6.3"]
[ring/ring-defaults "0.3.2"]
[ring/ring-jetty-adapter "1.6.3"]]
:plugins [[lein-ring "0.12.4"]]
:ring {:handler handler.core/-main}
:main handler.core)
这是我的处理程序命名空间
(ns handler.core
(:require [layout.core :as veiw_mapper]
[web-app.core ]
[compojure.core :refer :all]
[compojure.route :as route]
[ring.adapter.jetty :as jetty]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]])
(:gen-class))
(defroutes app-routes
(GET "/" [] (veiw_mapper/index))
(POST "/" [& params] (web-app.core/update-mapper params))
;;(POST "/about" [] ())
(route/resources "//")
(route/not-found "Not Found"))
(def app
(wrap-defaults app-routes site-defaults))
(defn -main[]
)
我正在制作war文件并将其粘贴到webapps文件夹中,然后运行tomcat服务器。
Type Exception Report
Message No matching ctor found for class java.lang.Integer
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
java.lang.IllegalArgumentException: No matching ctor found for class java.lang.Integer
clojure.lang.Reflector.invokeConstructor(Reflector.java:183)
handler.core$_main.invokeStatic(core.clj:21)
handler.core$_main.doInvoke(core.clj:19)
clojure.lang.RestFn.invoke(RestFn.java:408)
clojure.lang.Var.invoke(Var.java:379)
handler.listener$_contextInitialized$fn__11.invoke(listener.clj:1)
ring.util.servlet$make_service_method$fn__3668.invoke(servlet.clj:129)
handler.servlet$_service.invokeStatic(servlet.clj:1)
handler.servlet$_service.invoke(servlet.clj:1)
handler.servlet.service(Unknown Source)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
这就是出现的错误。一个提示是您得到的异常:
java.lang.IllegalArgumentException: No matching ctor found for class java.lang.Integer
因此,它试图构造一个整数
,但找不到正确的构造函数(ctor)。这可能意味着垃圾值是在它期望的整数位置提供的。例如:
> (Integer. {}) ; can't construct an Integer from an empty map
IllegalArgumentException No matching ctor found for class java.lang.Integer clojure.lang.Reflector.invokeConstructor (Reflector.java:183)
另一个提示是错误的视图
:
(GET "/" [] (veiw_mapper/index))
最好的方法是找到一个工作示例,让它在您的机器上工作,然后一次只添加1-3行新行,直到它工作。一个提示是您得到的异常:
java.lang.IllegalArgumentException: No matching ctor found for class java.lang.Integer
因此,它试图构造一个整数
,但找不到正确的构造函数(ctor)。这可能意味着垃圾值是在它期望的整数位置提供的。例如:
> (Integer. {}) ; can't construct an Integer from an empty map
IllegalArgumentException No matching ctor found for class java.lang.Integer clojure.lang.Reflector.invokeConstructor (Reflector.java:183)
另一个提示是错误的视图
:
(GET "/" [] (veiw_mapper/index))
最好的方法是找到一个工作示例,让它在您的机器上工作,然后一次只添加1-3行新代码,直到它工作。您确实需要提供您使用的代码(或模板)、部署到tomcat的方式以及得到的错误和日志。解决具体的编程问题也是如此,你必须提供你使用的代码(或模板),如何部署到tomcat,以及你得到的错误和日志。解决具体的编程问题也是如此。谢谢你的建议,我会尝试去实现它。谢谢你的建议,我会尝试去实现它。