0

我正在尝试:gen-class a 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 文件夹中。

4

1 回答 1

1

您使用的是哪个版本的 lein?

我从这里下载了码头,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”并将它们添加到您的项目依赖项中。

于 2012-10-04T08:39:51.393 回答