2012-03-05 6 views
9

Я создаю проект compojure, используя hiccup-1.0.0-beta1. Я получаю следующую трассировку стека, когда я бегу lein ring server-headless:hiccup 1.0.0-beta1 error

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) 

Который является запутанным для меня, потому что файл 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)) 
+0

вернулся к 0.3.8 и (после исправления: использование операторов) код отлично работает ... – Kevin

ответ

4

У меня такая же проблема.

Я думаю, вы используете dev-dependency lein-ring. Если вы заглянете в свою папку project/lib/dev, вы увидите hiccup 0.3.X jar. Это потому, что файл ring-devel jar файл использует старую икоту. Я думаю, причина в том, что проблема связана с конфликтами между этими файлами. Но я еще не понял способ обойти это.

Однако, если вы используете lein ring uberwar, чтобы создать файл для развертывания, этот файл работает в другом контейнере (например, tomcat) просто отлично.

+1

in maven Я могу сделать исключения зависимостей ... Я еще не lein pro, но мне интересно, есть ли способ исключить икоту из лейн-кольца? Но приятно поймать, это меня беспокоило ... – Kevin

+0

Вот как вы исключаете зависимости: : dev-dependencies [[lein-ring "0.5.4": exclusions [hiccup]]] Но я все еще получаю ошибка – Sathish

+1

В соответствии с этой проблемой github https://github.com/weavejester/hiccup/issues/41#issuecomment-4423262, это будет исправлено только в Ring 1.1 – Sathish

Смежные вопросы