ringはrubyでいえばrack。

(ns unk.core
  (:use ring.adapter.jetty))

(defn app [req]
  {:status 200
   :headers {"Content-Type" "text/plain"}
   :body "unk"})

(defn -main []
  (run-jetty app {:port 3000}))
$ lein run -m unk.core
2011-06-19 14:43:10.189:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
2011-06-19 14:43:10.191:INFO::jetty-6.1.26
2011-06-19 14:43:10.265:INFO::Started SocketConnector@0.0.0.0:3000

http://localhost:3000/

OMG!

ring.util.responseを使えばもうちょっと楽に書ける。

(ns unk.core
  (:use ring.util.response
        ring.adapter.jetty))

(defn app [req]
  (response "unk"))

(defn -main []
  (run-jetty app {:port 3000}))

run-jettyの部分がserver依存なので切り離す必要があると思う。どうやるのが普通なんだろう?

clojars.orgを検索した感じだとring server(紛らわしい名前だな)としてadapterがあって使えるそうなのはjetty, mongrel2, httpcoreぐらい。