我正在尝试在 clojure 应用程序中创建和使用嵌入式 Neo4j 实例。按照Neo4j API guide中的文档,我能够创建以下代码:
(defn make-embedded-db
[path]
(let [factory (GraphDatabaseFactory.)]
(-> (.newEmbeddedDatabaseBuilder factory path)
(.loadPropertiesFromFile "resources/neo4j.conf")
(.newGraphDatabase))))
我正在导入以下库:
(:import [java.io ByteArrayInputStream ByteArrayOutputStream]
[org.neo4j.graphdb Direction
GraphDatabaseService
Node
Relationship
RelationshipType
Transaction]
[org.neo4j.graphdb.factory GraphDatabaseFactory])
我在conf文件中启用了螺栓,如下所示:
dbms.connector.bolt.enabled=true
当我执行该make-embedded-db
函数时,我收到以下错误:
CompilerException java.lang.RuntimeException:错误启动 org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory,/path/to/graphdb,编译:(form-init7747172741153885056.clj:1:9)
如果我在配置中禁用螺栓连接器 - 它似乎工作正常。我启用bolt连接器的主要动机是我可以连接neo4j浏览器来可视化和探索graphdb。
我遇到了以前版本的 neo4j 嵌入式的帖子,这些帖子有类似的问题,这些问题通过使用已弃用的WrappingNeoServerBootStrapper得到了解决。有没有人遇到这个问题并指出我正确的方向。
已编辑 将嵌入式数据库实例分配给这样的全局变量时出现上述错误
(def db (make-embedded-db (io/file "resources/data/graphdb")))
但是只是调用函数本身,即
(make-embedded-db (io/file "resources/data/graphdb"))
给出了实际错误:
VerifyError 类 org.bouncycastle.asn1.x500.X500Name 覆盖 final 方法等于