clojure - 打ic 1.0.0-beta1错误

标签 clojure compojure hiccup

我正在使用hiccup-1.0.0-beta1创建一个compojure项目。当我运行lein ring server-headless时,我得到以下堆栈跟踪:

Caused by: java.lang.IllegalAccessError: defelem does not exist
at clojure.core$refer.doInvoke(core.clj:3287)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$load_lib.doInvoke(core.clj:4781)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:542)
at clojure.core$load_libs.doInvoke(core.clj:4800)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:544)
at clojure.core$use.doInvoke(core.clj:4892)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at hiccup.page_helpers$eval17$loading__4414__auto____18.invoke(page_helpers.clj:1)
at hiccup.page_helpers$eval17.invoke(page_helpers.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:5424)

这让我感到困惑,因为打ic不再存在page_helpers.clj文件:
$ jar tf lib/hiccup-1.0.0-beta1.jar 
META-INF/MANIFEST.MF
META-INF/maven/hiccup/hiccup/pom.xml
META-INF/maven/hiccup/hiccup/pom.properties
project.clj
hiccup/compiler.clj
hiccup/core.clj
hiccup/def.clj
hiccup/element.clj
hiccup/form.clj
hiccup/middleware.clj
hiccup/page.clj
hiccup/util.clj
$ 

另外,我的代码甚至没有尝试引入page_helpers.clj:
(ns views.layout 
    (:require [app-config :as config])
    (:use hiccup.core)
    (:use hiccup.page)
    (:use hiccup.element))

最佳答案

我也有同样的麻烦。

我认为您正在使用dev-dependency lein-ring 。如果查看project/lib/dev文件夹,则将在其中看到打ic 0.3.X jar 。这是因为文件 ring-devel jar 文件使用了旧的打cup。我想问题的原因与这些文件之间的冲突有关。但是我还没有想办法解决这个问题。

但是,如果使用lein ring uberwar创建可部署文件,则该文件可以在其他容器(例如tomcat)中正常工作。

关于clojure - 打ic 1.0.0-beta1错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9572150/

相关文章:

clojure - 如何获取试剂中某个项目的索引

clojure - 如何在 HTML 中漂亮地打印 Clojure 数据结构?

clojure - 为什么 ClojureScript 原子没有实现完整的协议(protocol)?

clojure - 在 Clojure 中构建 CLI 脚本

clojure java-time - 日期向前移动一年?

google-app-engine - 来自 Google App Engine 的 http 请求

java - Clojure/Java Mandelbrot 分形绘图

clojure - compojure/clojure GET 路由与 CSS 给出纯文本样式表响应

clojure - 使用 Ring 和 Compojure 的绝对路由 URL

css - 防止一行中的多个 span 重叠(Clojure 打嗝代码但纯 css 相关)