来自行动中的Clojure的Compojure示例不起作用

时间:2013-04-05 04:52:28

标签: clojure leiningen compojure

我正在处理Clojure in Action第232页中的Compojure示例

(ns compojure-test.core
  (:gen-class)
  (:use compojure))

(defroutes hello
  (GET "/" (html [:h1 "Hello world"]))
  (ANY "*" [404 "Page not found"]))

(run-server {:port 8080} "/*" (servlet hello))

但是当我试图运行它时:

$ lein run
Exception in thread "main" java.lang.ClassNotFoundException: compojure-test.core
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
...

似乎是声明

(:use compojure)

我也听说过最近版本的组合之间发生了重大变化。我在设置这个compojure应用程序时做错了什么?是否有一个很好的在线教程可以帮助我启动并运行?

1 个答案:

答案 0 :(得分:3)

您可能想尝试将use语句更改为:

(:use compojure.core)

应该这样做。

我在前面创建了一个样板模板,用于具有可以看到here的工作示例的组件。

更好的是,如果你正在使用Leiningen - 你应该 - 你可以简单地创建一个这样的新组合项目:

$ lein new compojure hello-world

结帐compojure Getting Started了解更多信息。