我正在尝试在clojure应用中创建和使用嵌入式Neo4j实例。根据{{3}}中的文档,我能够创建以下代码:
(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文件中启用了bolt,如下所示:
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)
如果我在配置中禁用螺栓连接器 - 它似乎工作正常。我启用螺栓连接器的主要动机是我可以连接neo4j浏览器来可视化和探索graphdb。
我遇到了neo4j嵌入式早期版本的帖子,这些帖子有类似的问题,这些问题已通过使用已被弃用的Neo4j API guide解决。有没有人遇到这个问题并指出我正确的方向。
EDITED 将嵌入式数据库实例分配给像这样的全局变量
时,我收到了上述错误(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方法等于
答案 0 :(得分:1)
基本上,快速谷歌的错误表明可能有多个路径包含在类路径中的bouncycastle - 检查graphdb文件夹中的debug.log实际上确认了这一点。我在同一个项目中包括了incanter,并且还添加了它自己的bouncycastle路径,因此导致了这个问题。删除它解决了这个问题。