Datomic v1.0.6202在Datomic.api/create-database上为:dev存储(io.net



试图在本地Datomic:devtransactor(v1.0.6202(中创建数据库会抛出NoSuchMethodError,但在内存中DB有效:

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

现在,让我们针对运行Java 1.8:的本地:dev交易程序进行尝试

(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)'

起初,我认为这与我最近提出的关于Datomic transactor需要Java 1.8或更早版本(v15静默失败(的问题有关,但我尝试的所有JDK都会出现此错误。

我在应用程序中的transactor和dependency上使用Clojure 1.10.1和Datomic v1.0.6202。

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

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

最新更新