从linux连接到Neo4j的问题

时间:2013-10-25 12:22:20

标签: neo4j

尝试从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)           at org.neo4j.graphdb.factory.GraphDatabaseFactory $ 1.newDatabase(GraphDatabaseFactory.java:92)           at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:197)           at 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)           at 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)           at 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管理界面运行良好(因为我在org.neo4j.server.database.location和org.neo4j.server.webadmin.data.uri中给出​​了相同的路径,因此db的路径可能不是问题),

我用来连接的java代码是:

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

你能说出什么可能导致 java.lang.IllegalArgumentException:找不到架构索引提供者org.neo4j.kernel.api.index.SchemaIndexProvider

3 个答案:

答案 0 :(得分:6)

您的类路径上似乎缺少neo4j-lucene-index。如果该提示无法提供类路径上的jar列表。

答案 1 :(得分:4)

保持与Neo4j相关的罐子分开,即不要将它们捆绑在你创建的罐子里面。而只是使用类路径选项在运行时指向Neo4j库。

答案 2 :(得分:4)

我得到了同样的错误,最后得到的是不同版本的neo4j和neo4j-lucene-index导致错误。他们需要保持相同的版本。仍然不确定它依赖于哪个版本的lucene,但3.6.2可以在编译中存活下来。谢谢Stefan。很难找到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"

这解决了我的错误。