尝试从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
答案 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"
这解决了我的错误。