Dav*_*ams 5 jetty clojure ring leiningen
我正在跟随这个例子,使用ring和jetty在Clojure中创建一个简单的Web服务.
我在我的project.clj中有这个:
(defproject ws-example "0.0.1"
:description "REST datastore interface."
:dependencies
[[org.clojure/clojure "1.5.1"]
[ring/ring-jetty-adapter "0.2.5"]
[ring-json-params "0.1.0"]
[compojure "0.4.0"]
[clj-json "0.5.3"]]
:dev-dependencies
[[lein-run "1.0.0-SNAPSHOT"]])
Run Code Online (Sandbox Code Playgroud)
这在脚本/ run.clj中
(use 'ring.adapter.jetty)
(require '[ws-example.web :as web])
(run-jetty #'web/app {:port 8080})
Run Code Online (Sandbox Code Playgroud)
这在src/ws_example/web.clj中
(ns ws-example.web
(:use compojure.core)
(:use ring.middleware.json-params)
(:require [clj-json.core :as json]))
(defn json-response [data & [status]]
{:status (or status 200)
:headers {"Content-Type" "application/json"}
:body (json/generate-string data)})
(defroutes handler
(GET "/" []
(json-response {"hello" "world"}))
(PUT "/" [name]
(json-response {"hello" name})))
(def app
(-> handler
wrap-json-params))
Run Code Online (Sandbox Code Playgroud)
但是,当我执行时:
lein run script/run.clj
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
No :main namespace specified in project.clj.
Run Code Online (Sandbox Code Playgroud)
为什么我得到这个,我该如何解决?
你必须把这些(run-jetty)东西放到某个-main地方,然后将其添加到project.clj类似的地方
:main ws-example.core)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4450 次 |
| 最近记录: |