我想:gen-class一个Servlet 这是我的代码:
(ns test.test
(:import (java.io PrintWriter) (javax.servlet.http HttpServlet))
(:gen-class :name test.TestServlet :extends javax.servlet.http.HttpServlet))
(defn -doGet[request response]
(let [wrtr (.getWriter response)]
(.println wrtr "hello from clojure")))
Lein无法编译 它说线程中的异常“main”java.lang.ClassNotFoundException:javax.servlet.http.HttpServlet(Test.clj:1)
我已经将Lein中的:library-path修改为“:library-path”/ home / long / workspaces / spring / LongHDi / war / WEB-INF / lib“但它没有用。
你知道为什么吗?
我正在尝试使用Google App Engine。我想要扩展的servlet类已经在我指定的lib文件夹中。
答案 0 :(得分:1)
您使用的是哪个版本的lein?
我从here下载了码头,lein version1通过project.clj为我工作
(defproject st2 "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:library-path "/Users/Niko/Downloads/jetty-hightide-8.1.7.v20120910/lib"
:aot [st2.core]
:dependencies [[org.clojure/clojure "1.3.0"]])
st2.core与你的代码相同:
(ns st2.core
(:import (java.io PrintWriter) (javax.servlet.http HttpServlet))
(:gen-class :name test.TestServlet :extends javax.servlet.http.HttpServlet))
(defn -doGet[request response]
(let [wrtr (.getWriter response)]
(.println wrtr "hello from clojure")))
如果您使用的是lein2,则不支持:library-path,因此我怀疑您必须添加依赖项“a-la-maven”并将它们添加到项目依赖项中。