2017-04-08 5 views
2

私の目標は、compojureを使ってWebアプリケーションを作成し、datomicをデータベースとして接続することです。個別に、これらの2つのコンポーネントは正常に動作します。しかし、私は lein ring server-headless(依存関係としてdatomicを含む)でサーバーを起動しようとすると致命的なエラーが発生します。エラー出力のヘッド:最初lein new compojure fooで生成project.cljデータの依存関係を含むときにlein ring server-headlessが失敗する

(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"]]}}) 

を使用して

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) 

。依存関係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]] 

を行うことによって、いくつかの依存関係を除く試みたが、それだけですべてのヘルプは大幅にappriciatedされるだろう

clojure.lang.Compiler$CompilerException: java.lang.ClassNotFoundException: org.eclipse.jetty.client.HttpClient, compiling:(cognitect/http_client.clj:1:1) 

になります。

PS。私はクロージャーの初心者です。これらのエラーメッセージは理解できません。

+0

'com.datomic/CLJ-クライアントでどの桟橋のバージョン「0.8.606」'動作するようになっと? –

+0

'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

+0

AggregateLifeCycleクラスファイルは、ローカル.m2のmavenのjarファイルにありますか –

答えて

1

桟橋を使わないでください。非常によく似た問題を思い付いたスラックグループから誰か今、この組み合わせ(桟橋の代わりに、HTTP-キット)を使用しています。

[com.datomic/datomic-free "0.9.5544"] [ring/ring-core "1.5.0"] [http-kit "2.2.0"]

+0

datomic clj-clientはjettyに依存します。私がjettyをパージしていると、CompilerException java.lang.ClassNotFoundException:org.eclipse.jetty.client.HttpClientがコンパイルされています:(cognitect/http_client.clj:1:1) ' – lsund

+0

この時点で私はあきらめる。ご協力ありがとうございました。 – lsund

+0

この解決策は私のために働いた。私はOPと同じ問題を抱えていた。 – Jason

0

私もこの問題に遭遇し、回避策を見つけることができませんでした。私が理解しているところでは、リングコアはレガシー目的のために古い桟橋アダプターを使用しているようです。私は私のセットアップでいないさらなる問題で、これまでリングの依存などhttps://github.com/sunng87/ring-jetty9-adapter値する交換を見つけた:

[com.datomic/clj-client "0.8.606" :exclusions [org.eclipse.jetty/jetty-http org.eclipse.jetty/jetty-util org.eclipse.jetty/jetty-client]] 
[info.sunng/ring-jetty9-adapter "0.10.0"] 
+0

回避策を見つけたようです。 – Jason

関連する問題