0

サーブレットを:gen-classしようとしていますこれは私のコードです:

(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 / worksheets / spring / LongHDi / war / WEB-INF / lib」に変更しましたが、機能しませんでした。

理由はわかりますか?

GoogleAppEngineを使用しようとしています。拡張したいサーブレットクラスは、指定したlibフォルダにすでにあります。

4

1 に答える 1

1

どのバージョンのラインを使用していますか?

ここからjettyをダウンロードしましたが、leinversion1project.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 に答える