Datomic v1.0.6202 在 datomic.api/create-database 上抛出 NoSuchMethodError for :dev storage (io.netty.channel.SingleThreadEventLoop)

Datomic v1.0.6202 throws NoSuchMethodError on datomic.api/create-database for :dev storage (io.netty.channel.SingleThreadEventLoop)

尝试在本地 Datomic :dev 事务处理程序 (v1.0.6202) 中创建数据库抛出 NoSuchMethodError,但内存数据库有效:

(d/create-database "datomic:mem://localhost:4334/test")
=> true
(d/connect "datomic:mem://localhost:4334/test")
=> #object[datomic.peer.LocalConnection 0x3a5266c4 "datomic.peer.LocalConnection@3a5266c4"]

现在让我们尝试针对本地 :dev 交易者 运行 Java 1.8:

(d/connect "datomic:dev://localhost:4334/blog")
=> Execution error at datomic.peer/get-connection$fn (peer.clj:661).
Could not find blog in catalog

;; Let's try to create it:
(d/create-database "datomic:dev://localhost:4334/blog")
Execution error (NoSuchMethodError) at io.netty.channel.SingleThreadEventLoop/<init> (SingleThreadEventLoop.java:65).
'void io.netty.util.concurrent.SingleThreadEventExecutor.<init>(io.netty.util.concurrent.EventExecutorGroup, java.util.concurrent.Executor, boolean, java.util.Queue, io.netty.util.concurrent.RejectedExecutionHandler)'

起初我认为这与我的 recent question 关于需要 Java 1.8 或更早版本(v15 静默失败)的 Datomic 事务处理程序有关,但我尝试过的所有 JDK 都会出现此错误。

我在我的应用程序中使用 Clojure 1.10.1 和 Datomic v1.0.6202 作为事务处理程序和依赖项。

看起来像是来自 alephmanifold 的 Netty 冲突。我降级了 Aleph,问题解决了。

我希望有更好的方法来调试这些类型的冲突。