【问题标题】:Issues in connecting to Neo4j from linux从 linux 连接到 Neo4j 的问题
【发布时间】:2013-10-25 12:22:19
【问题描述】:

尝试从 java 连接到 Neo4j 我收到以下错误:

线程“main”java.lang.RuntimeException 中的异常:启动错误 org.neo4j.kernel.EmbeddedGraphDatabase, /data/graph.db 在 org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:323) 在 org.neo4j.kernel.EmbeddedGraphDatabase.(EmbeddedGraphDatabase.java:100) 在 org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:92) 在 org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:197) 在 org.neo4j.graphdb.factory.GraphDatabaseFactory.newEmbeddedDatabase(GraphDatabaseFactory.java:69) 在.....

原因:org.neo4j.kernel.lifecycle.LifecycleException: 零件 'org.neo4j.kernel.impl.transaction.XaDataSourceManager@4514ba77' 是 初始化成功,但启动失败。请参照附件 导致异常。 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:504) 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 在 org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:300)

    ... 7 more Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component

'org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource@2c86c977' 是 初始化成功,但启动失败。请参照附件 导致异常。 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:504) 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 在 org.neo4j.kernel.impl.transaction.XaDataSourceManager.start(XaDataSourceManager.java:165) 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:498)

    ... 9 more Caused by: java.lang.IllegalArgumentException: No schema index provider org.neo4j.kernel.api.index.SchemaIndexProvider

找到了。类路径上可用的内核扩展:

类路径条目:/...../java/....xyz.jar 在 org.neo4j.kernel.api.index.SchemaIndexProvider$2.select(SchemaIndexProvider.java:136) 在 org.neo4j.kernel.api.index.SchemaIndexProvider$2.select(SchemaIndexProvider.java:128) 在 org.neo4j.kernel.extension.KernelExtensions.resolveDependency(KernelExtensions.java:207) 在 org.neo4j.kernel.InternalAbstractGraphDatabase$DependencyResolverImpl.resolveDependency(InternalAbstractGraphDatabase.java:1403) 在 org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource.start(NeoStoreXaDataSource.java:311) 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:498) ... 12 更多

我使用的是Ne04j-2.0.0-M05版本,​​在linux机器上运行Java 7下的java代码。相同的 jar 文件和 java 代码在 Windows 机器上运行良好。 Web 管理界面运行良好(因此 db 的路径可能不是问题,因为我在 org.neo4j.server.database.location 和 org.neo4j.server.webadmin.data.uri 中给出了相同的路径),

我用来连接的java代码是:

String dbpath = "/NEO4J_HOME/data/graph.db/";
graphdb = new GraphDatabaseFactory().newEmbeddedDatabase(dbpath);

你能说出什么可能导致 java.lang.IllegalArgumentException: No schema index provider org.neo4j.kernel.api.index.SchemaIndexProvider found

【问题讨论】:

  • 你的用户对NEO4J_HOME有读写权限吗?

标签: neo4j


【解决方案1】:

看起来您的类路径中缺少neo4j-lucene-index。如果该提示无助于提供类路径上的 jar 列表。

【讨论】:

  • 嗨,是的,这就是问题所在,我自己构建了导致问题的 jar,必须保留 Neo4j 的单个 jar 或合并 jar 的 METAINF 内容是我得到的响应谷歌组。
【解决方案2】:

保持与 Neo4j 相关的 jar 分开,即不要将它们捆绑在您创建的 jar 中。相反,只需使用类路径选项在运行时指向 Neo4j 库。

【讨论】:

    【解决方案3】:

    我遇到了同样的错误,最后发现是由于 neo4j 和 neo4j-lucene-index 的不同版本导致了错误。他们需要保持相同的版本。仍然不确定它依赖于哪个版本的 lucene,但 3.6.2 可以在编译后继续存在。谢谢斯特凡。很难找到 neo4j 所依赖的所有内容的最新版本。

    compile "org.neo4j:neo4j-kernel:2.0.0-RC1"
    compile "org.apache.lucene:lucene-core:3.6.2"
    compile "org.neo4j:neo4j-lucene-index:2.0.0-RC1"
    

    这修正了我的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2017-11-28
      • 2020-02-19
      相关资源
      最近更新 更多