我的目标是使用compojure创建Web应用程序并将datomic作为数据库连接。单独来说,这两个组件工作正常。但是,当我尝试使用 lein ring server-headless
(包括datomic作为依赖项)启动服务器时出现错误。误差输出的头:包含数据组依赖关系时,lein ring server-headless会失败
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/jetty/util/component/AggregateLifeCycle, compiling:(ring/adapter/jetty.clj:1:1)
at clojure.lang.Compiler.load(Compiler.java:7391)
at clojure.lang.RT.loadResourceScript(RT.java:372)
at clojure.lang.RT.loadResourceScript(RT.java:363)
at clojure.lang.RT.load(RT.java:453)
at clojure.lang.RT.load(RT.java:419)
at clojure.core$load$fn__5677.invoke(core.clj:5893)
使用project.clj
(defproject pinvest "0.1.0-SNAPSHOT"
:description "foobar"
:min-lein-version "2.0.0"
:dependencies [[org.clojure/clojure "1.8.0"]
[org.clojure/core.async "0.3.442"]
[org.clojure/tools.namespace "0.2.11"]
[compojure "1.5.1"]
[ring/ring-defaults "0.2.1"]
[com.datomic/clj-client "0.8.606"]]
:plugins [[lein-ring "0.9.7"]]
:ring {:handler pinvest.handler/app}
:profiles
{:dev {:dependencies [[javax.servlet/servlet-api "2.5"]
[ring/ring-mock "0.3.0"]]}})
与lein new compojure foo
最初生成。依赖关系com.datomic/clj-client
导致启动服务器时出现问题。
我试图排除一些依赖,通过使我project.clj
与
[com.datomic/clj-client "0.8.606"
:exclusions [org.eclipse.jetty/jetty-http
org.eclipse.jetty/jetty-util
org.eclipse.jetty/jetty-client]]
但只是导致
clojure.lang.Compiler$CompilerException: java.lang.ClassNotFoundException: org.eclipse.jetty.client.HttpClient, compiling:(cognitect/http_client.clj:1:1)
任何帮助将大大appriciated。
PS。我是clojure的新手,这些错误信息是不可能理解的
码头哪个版本的'com.datomic/CLJ-客户端“0.8.606”'应该工作用? –
使用'lein deps:tree'给我 [org.eclipse.jetty/jetty-client“9.3.7.v20160115] [org.eclipse.jetty/jetty-io”9.3.7.v20160115“] [org.eclipse .jetty/jetty-http“9.3.7.v20160115”] [org.eclipse.jetty/jetty-util“9.3.7.v20160115”] – lsund
您能否在本地.m2 maven的jar文件中看到AggregateLifeCycle类文件如果它不存在于一个指向的jar文件(可能是jetty-util)中,那么错误信息是有道理的 –