Исключение компилятора Datomic Jetty (в проекте compojure-api) - PullRequest
0 голосов
/ 11 февраля 2019

Clojure новичок здесь.Я пытаюсь интегрировать Datomic в compojure-api проект.Есть столкновение на пристани, поэтому, основываясь на документах , мой project.clj выглядит следующим образом, и теперь он работает, когда я lein ring server

 (defproject dice-api "0.1.0-SNAPSHOT"
   :description "FIXME: write description"
   :dependencies [[org.clojure/clojure "1.8.0"]
                  [metosin/compojure-api "1.1.11"]
                  [com.datomic/client-pro "0.8.28"
                   :exclusions [org.eclipse.jetty/jetty-client
                               org.eclipse.jetty/jetty-http
                               org.eclipse.jetty/jetty-util]]]
   :ring {:handler dice-api.handler/app}
   :uberjar-name "server.jar"
   :profiles {:dev {:dependencies [[javax.servlet/javax.servlet-api "3.1.0"]]
                   :plugins [[lein-ring "0.12.0"]]}})

Однако яТеперь я не могу играть с datomic в repl (и, вероятно, не будет работать, когда я вызываю его в моей конечной точке compojure-api).

➜  dice-api lein repl
...
user=> (require '[datomic.client.api :as d])
nil
user=> (def local-cfg {:server-type :peer-server
  #_=>                  :access-key "blahblahblah"
  #_=>                  :secret "blahblahblah"
  #_=>                  :endpoint "localhost:8998"})
#'user/local-cfg
user=> (defn client [cfg]
  #_=>   (d/client cfg))
#'user/client
user=> (def conn (d/connect (client local-cfg) {:db-name "hello"}))

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

Как я могу интегрировать datomic и compojure-api?

1 Ответ

0 голосов
/ 12 февраля 2019

Я не использую точную комбинацию, которую вы используете, но это может помочь клонировать проект Tupelo Datomic .Это самостоятельный проект, использующий Datomic Free и полностью автономный.Клонируйте репозиторий, и вы сможете запускать lein test следующим образом:

~/tupelo-datomic > 
~/tupelo-datomic > lein clean
~/tupelo-datomic > lein test

WARNING: find already refers to: #'clojure.core/find in namespace: tupelo-datomic.core, being replaced by: #'tupelo-datomic.core/find
*clojure-version* => {:major 1, :minor 10, :incremental 0, :qualifier nil}

lein test tst.tupelo-datomic._bootstrap

-------------------------------
   Clojure 1.10.0    Java 11
-------------------------------

lein test tst.tupelo-datomic.bond

lein test tst.tupelo-datomic.bond-query

lein test tst.tupelo-datomic.core

lein test tst.tupelo-datomic.find

lein test tst.tupelo-datomic.functionality

lein test tst.tupelo-datomic.quick-start
:using-local

Ran 17 tests containing 110 assertions.
0 failures, 0 errors.
~/tupelo-datomic > 

Поскольку он полностью автономен, вы сможете добавлять любые веб-фреймворки, какие пожелаете.

...