我想在clojure应用程序中创建和使用嵌入式Neo4j实例。继Neo4j API guide的文档,我能够创建下面的代码:嵌入式数据库不以螺栓连接器开始(neo4j 3.2.0)
(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: Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory, /path/to/graphdb, compiling:(form-init7747172741153885056.clj:1:9)
如果我在配置中禁用螺栓连接器 - 它似乎工作正常。启用螺栓连接器的主要动机是,我可以连接neo4j浏览器以可视化和浏览graphdb。
我遇到过嵌入neo4j以前版本的帖子,它们使用已经废弃的WrappingNeoServerBootStrapper解决了类似的问题。有没有人遇到这个问题,并指出我在正确的方向。
EDITED 分配嵌入式数据库实例时的全局变量这样
(def db (make-embedded-db (io/file "resources/data/graphdb")))
不过只是调用函数我得到上述错误本身即
(make-embedded-db (io/file "resources/data/graphdb"))
给实际错误:
VerifyError class org.bouncycastle.asn1.x500.X500Name overrides final method equals