1
で定義された実装を見つけることができませんREPLから対話的に使用された場合、またはlein run
で開始された場合は、lein uberjar
となり、例外WS:レインuberjarたちは、プロトコルを持っている私たちのClojureのコードベースでのDeftype
Exception in thread "main" java.lang.ExceptionInInitializerError, compiling:(/tmp/form-init118199196859405970.clj:1:72)
...
Caused by: java.lang.ExceptionInInitializerError
...
Caused by: java.lang.IllegalArgumentException: No implementation of method: :index of protocol: #'project.repository/Repository found for class: project.mongo.MongoRepository
at clojure.core$_cache_protocol_fn.invokeStatic(core_deftype.clj:568)
at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:560)
at project.repository$fn__557$G__514__566.invoke(repository.clj)
at project.users__init.load(Unknown Source)
at project.users__init.<clinit>(Unknown Source)
奇妙な部分が(index)
が(let)
に呼び出されたときに、問題が消えることです:
(def users-storage
(let [u (mongo-repository mongo-db "leads")]
(index u [:key1 :key2] true)
u))
差が生じるかもしれないもの上の任意の考え?
あなたはレインのuberjarとAOTコンパイルのをしようとしましたか? –
@akondはい!これは、コードをコピーして質問に貼り付けるときに失われる必要があります。問題を修正しました。 – 0x60
@minhtuannguyenそれは私たちがやっていることです。私たちは以下を持っています:aot:project.cljのすべてで、例外はaotコンパイル中にスローされます。 – 0x60