首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在类路径中找不到compojure

在类路径中找不到compojure
EN

Stack Overflow用户
提问于 2010-05-26 08:21:18
回答 2查看 7.6K关注 0票数 10

我正在尝试各种入门示例,我可以获得一个在路线中使用基本HTML的基本hello world示例,如下所示

代码语言:javascript
复制
(ns hello-world
  (:use compojure.core ring.adapter.jetty)
  (:require [compojure.route :as route]))

(defroutes example
  (GET "/" [] "<h1>Hello World Wide Web!</h1>"))

(run-jetty example {:port 8080})

但是当我尝试像这样使用html帮助程序时,

代码语言:javascript
复制
(ns hello-world
  (:use compojure ring.adapter.jetty)
  (:require [compojure.route :as route]))

(defroutes example
  (GET "/" []
    (html [:h1 "Hello World"])))

(run-jetty example {:port 8080})

然后我得到了下面的错误

线程"main“java.io.FileNotFoundException中出现空异常:在类路径上找不到compojure__init.class或compojure.clj:(core.clj:1)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-26 14:22:37

正如W55tKQbuRu28Q4xv在评论中提到的,在第二个示例中使用(:use compojure ...)。您应该切换到(:use compojure.core ...),然后可能为您使用的其他功能(如hiccup (<- this is a link to the GitHub repo) )添加一些额外的依赖项,这现在是一个独立的项目,用于构建HTML的DSL)。

我的猜测是,在使用Compojure 0.4时,您正在尝试遵循为Compojure 0.3编写的一些教程。后者根本不包括compojure名称空间,并且已经精简了很多,将基本的HTTP处理委托给ring,并将其他各种功能分拆给不同的项目(如前面提到的hiccup)。

幸运的是,有关于0.3 -> 0.4过渡的很好的参考资料,例如Brenton Ashworth的this blog entry。如果你找不到已经从Compojure中删除的东西,你很有可能现在就能知道在哪里找到它。有关勘误表和其他详细信息,请参阅this follow-up discussion on Compojure的Google group。

票数 9
EN

Stack Overflow用户

发布于 2010-05-27 02:00:05

我玩了一个Compojure "Hello World“,遇到了这个问题(以及其他许多在我脑海中变得混乱的问题)。另一个复杂的问题是web上的许多Compojure文档已经过时了。归根结底,以下是你想要遵循的步骤:

  1. 拥有最新版本的Leiningen。请确保您遵循github站点上的安装说明。(不要通过macports;他们的Leiningen已过期。)
  2. 遵循Compojure说明here.

请注意,文件名不正确。它应该是src/hello_www/core.clj,而不是src/hello-www/core.clj。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2909419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档