我在这里使用的某个地方让java.rmi.server.UID
GAE 感到不安。在 :only'ing 我对骨头的依赖之后,我陷入了僵局。
(ns helloworld.core
(:use ;[hiccup.core]
[hiccup.page-helpers :only (html5 include-css)]
[clojure.contrib.string :only (split)]
[compojure.core :only (defroutes GET)]
[hiccup.middleware :only (wrap-base-url)])
(:require [appengine-magic.core :as ae]
[compojure.route :as route
:only (resources not-found) ]
[compojure.handler :as handler :only (site)])
(:gen-class :extends javax.servlet.http.HttpServlet))
(defn index-page
([name]
(html5
[:head
[:title (str "Hello " name)]
(include-css "/css/style.css")]
[:body
[:h1 (str "Hello " name)]]))
([] (index-page "World")))
(def match-opperator
{ "add" +
"subtract" -
"multiply" *
"divide" /})
(defroutes hello-routes
(GET "/:f/*" [f & x]
(index-page (apply (match-opperator f)
(map #(Integer/parseInt %)
(split #" " (:* x))))))
(GET "/" [] (index-page))
(route/resources "/")
(route/not-found "Page not found"))
(def app
(-> (handler/site hello-routes)
(wrap-base-url)))
(ae/def-appengine-app helloworld-app #'app)
我可以将它加载到码头并且它工作正常,在将它加载到 dev-appserver 之后我得到了这个:
HTTP 错误 500 访问 /multiply/1%202%204%208 时出现问题。原因: java.rmi.server.UID 是一个受限类。有关详细信息,请参阅 Google App Engine 开发人员指南。 造成的: java.lang.NoClassDefFoundError: java.rmi.server.UID 是一个受限类。有关详细信息,请参阅 Google App Engine 开发人员指南。 在 com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51) 在 org.apache.commons.fileupload.disk.DiskFileItem.(DiskFileItem.java:103) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(Class.java:186) 在 ring.middleware.multipart_params$loading__4414__auto__.invoke(multipart_params.clj:1) 在 ring.middleware.multipart_params__init.load(未知来源) 在 ring.middleware.multipart_params__init.(未知来源) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(Class.java:264) 在 clojure.lang.RT.loadClassForName(RT.java:1578) 在 clojure.lang.RT.load(RT.java:399) 在 clojure.lang.RT.load(RT.java:381) 在 clojure.core$load$fn__4519.invoke(core.clj:4915)
ps:这是我的 project.clj 以防这有帮助:
(defproject helloworld "1.0.0-SNAPSHOT" :description "FIXME: 写描述" :依赖项[[org.clojure/clojure“1.2.1”] [org.clojure/clojure-contrib “1.2.0”] [组合“0.6.2”] [打嗝“0.3.4”]] :dev-dependencies [[appengine-magic "0.4.1"] [swank-clojure "1.2.1"]])