GAEjでcompojureを使う場合、cljの先頭で
(ns servlet (:gen-class :extends javax.servlet.http.HttpServlet) (:use compojure.html))
としてはいけません!!
もし、compojure.htmlを使おうとすると・・・
HTTP ERROR 500 Problem accessing /. Reason: java.rmi.server.UID is a restricted class. Please see the Google App Engine developer's guide for more details. Caused by: java.lang.NoClassDefFoundError: java.rmi.server.UID is a restricted class. Please see the Google App Engine developer's guide for more details. at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51) at org.apache.commons.fileupload.disk.DiskFileItem.(DiskFileItem.java:103) at java.lang.Class.forName0(Native Method) (以下略)
compojure.htmlのいづれかのモジュールがjava.rmi.server.UIDを要求していると思われます。具体的にどれなのかは知りません。
必要なものだけuseするようにしましょう。
(ns servlet (:gen-class :extends javax.servlet.http.HttpServlet) (:use [compojure.http servlet routes]))