【问题标题】:BatchInserter initialization yields ArrayIndexOutOfBounds and ExceptionInInitializationErrorBatchInserter 初始化产生 ArrayIndexOutOfBounds 和 ExceptionInInitializationError
【发布时间】:2014-08-15 17:58:03
【问题描述】:

我要做的只是以下几点:

    BatchInserter ins = BatchInserters.inserter("target/batchinserter-example");

其中"target/batchinserter-example" 是给定的存储目录。它编译得很好,但我得到:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.neo4j.unsafe.batchinsert.BatchInserterImpl.rejectAutoUpgrade(BatchInserterImpl.java:556)
    at org.neo4j.unsafe.batchinsert.BatchInserterImpl.<init>(BatchInserterImpl.java:219)
    at org.neo4j.unsafe.batchinsert.BatchInserters.inserter(BatchInserters.java:94)
    at org.neo4j.unsafe.batchinsert.BatchInserters.inserter(BatchInserters.java:88)
    at org.neo4j.unsafe.batchinsert.BatchInserters.inserter(BatchInserters.java:63)
    at org.neo4j.unsafe.batchinsert.BatchInserters.inserter(BatchInserters.java:51)
    at NeoBatchInserter.main(NeoBatchInserter.java:26)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    at org.neo4j.graphdb.factory.GraphDatabaseSettings.<clinit>(GraphDatabaseSettings.java:69)
    ... 7 more

我不明白这是怎么回事。我实际上只是在调用一个带有String 的构造函数。我现在很沮丧。如果有更好的方法可以做到这一点,我欢迎尝试。我想做的只是设置一个BatchInserter(从头开始),这样我就可以开始我的工作了。

编辑: 我只是试图从测试图中将它指向一个graph.db,但这仍然不起作用......

我也在使用 kernel.2.1.3

编辑 2: 由于我的服务器是 2.1.2,所以我将 jar 更改为 2.1.2 版本,但仍然出现相同的错误。

【问题讨论】:

  • 你能找到异常跟踪的缺失部分吗?尤其是什么 GraphDatabaseSettings 失败了?也许你可以调试到那条线?
  • 看起来你没有加载缓存,所以这似乎是一个类路径错误,导致 Neo4j 找不到缓存提供程序(也可能是版本问题)?你如何配置你的项目? maven,gradle?
  • @MichaelHunger 我没有使用任何东西来配置项目——直接手动链接。我应该使用 Maven 吗?
  • @MichaelHunger 谢谢,使用 maven 一切正常!

标签: neo4j


【解决方案1】:

目录是用什么版本的 Neo4j 创建的?我很确定您不能将 2.1.3 的 batchinserter 与早期版本一起使用。

安装2.1.3,在neo4j.properties中设置allow_store_upgrade=true,启动服务器并关闭它。彻底关机至关重要。然后使用您的批处理插入器代码。

【讨论】:

  • 据我所知,应该可以简单地将任何字符串作为参数,它应该创建商店,不是吗?
  • 我使用的是neo4j 2.1.2服务器,但我没想到从那行代码中,会与服务器建立连接。不是这样吗?
  • 尝试了停止和启动/重启/等,没有做任何事情...更改为 2.1.2 jar 相同的错误。更改为 2.1.3 服务器,同样的错误。这段代码真的有效吗?我真的重新安装了所有东西,没有任何改变。
  • 你真的确定你已经彻底关闭了,例如使用bin/neo4j stop ?
  • 批量插入器不支持更新,您必须使用与目标相同版本的数据库或空目录。
猜你喜欢
  • 1970-01-01
  • 2011-02-18
  • 2012-10-01
  • 2016-03-08
  • 2016-08-16
  • 1970-01-01
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多