Mon but est de créer une application Web en utilisant compojure et attacher la base de données en tant que base de données. Individuellement, ces deux composants fonctionnent bien. Toutefois, lorsque j'essaie de démarrer le serveur avec lein ring server-headless
(y compris datomic comme une dépendance) avec une énorme erreur. La tête de la sortie d'erreur:lein anneau serveur-sans tête échoue en incluant la dépendance datomic
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)
utilisant le 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"]]}})
Initialement généré avec lein new compojure foo
. La dépendance com.datomic/clj-client
provoque le problème lors du démarrage du serveur.
J'ai essayé d'exclure certains dépendances, en faisant mon project.clj
avec
[com.datomic/clj-client "0.8.606"
:exclusions [org.eclipse.jetty/jetty-http
org.eclipse.jetty/jetty-util
org.eclipse.jetty/jetty-client]]
mais que les résultats juste à
clojure.lang.Compiler$CompilerException: java.lang.ClassNotFoundException: org.eclipse.jetty.client.HttpClient, compiling:(cognitect/http_client.clj:1:1)
Toute aide serait grandement appriciated.
PS. Je suis un débutant à clojure, et ces messages d'erreur sont tout simplement impossible à comprendre
Quelle version de la jetée est 'com.datomic/CLJ-client « 0.8.606 »' censé travailler avec? –
en utilisant 'lein deps: tree' me donne [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
Pouvez-vous voir le fichier de classe AggregateLifeCycle dans un fichier jar dans votre local .m2 maven repo? Si elle n'existe pas dans l'un des fichiers jar pointé (probablement jetty-util) alors le message d'erreur a du sens –