从Linux连接到Neo4j的问题 [英] Issues in connecting to Neo4j from linux
问题描述
尝试从Java连接到Neo4j时出现以下错误:
Trying to connect to Neo4j from java I get the following error:
线程主"中的异常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) 在.....
Exception in thread "main" java.lang.RuntimeException: Error starting org.neo4j.kernel.EmbeddedGraphDatabase, /data/graph.db at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:323) at 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) at .....
由以下原因引起: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)
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.impl.transaction.XaDataSourceManager@4514ba77' was successfully initialized, but failed to start. Please see attached cause exception. at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:504) at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) at 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)
'org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource@2c86c977' was successfully initialized, but failed to start. Please see attached cause exception. at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:504) at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) at org.neo4j.kernel.impl.transaction.XaDataSourceManager.start(XaDataSourceManager.java:165) at 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
找到了.可在类路径上使用内核扩展:
found. Kernel extensions available on classpath:
类路径条目:/...../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个
Class path entries: /...../java/....xyz.jar at org.neo4j.kernel.api.index.SchemaIndexProvider$2.select(SchemaIndexProvider.java:136) at org.neo4j.kernel.api.index.SchemaIndexProvider$2.select(SchemaIndexProvider.java:128) at org.neo4j.kernel.extension.KernelExtensions.resolveDependency(KernelExtensions.java:207) at org.neo4j.kernel.InternalAbstractGraphDatabase$DependencyResolverImpl.resolveDependency(InternalAbstractGraphDatabase.java:1403) at org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaDataSource.start(NeoStoreXaDataSource.java:311) at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:498) ... 12 more
我正在使用Ne04j-2.0.0-M05版本,在Linux机器上的Java 7下运行Java代码.尽管在Windows计算机中,相同的jar文件和Java代码也可以很好地工作. Web管理界面运行良好(因此,到db的路径可能不是问题,因为我在org.neo4j.server.database.location和org.neo4j.server.webadmin.data.uri中指定了相同的路径),
I am using Ne04j-2.0.0-M05 version, running the java code under Java 7 in a linux machine. The same jar files and java code works good though in a windows machine. The web admin interface works well (hence path to db may not be a issue since I ve given the same path in org.neo4j.server.database.location and org.neo4j.server.webadmin.data.uri),
我以前用来连接的Java代码是:
The java code I used to connect is :
String dbpath = "/NEO4J_HOME/data/graph.db/";
graphdb = new GraphDatabaseFactory().newEmbeddedDatabase(dbpath);
您能否确定可能导致 java.lang.IllegalArgumentException的原因:未找到架构索引提供者org.neo4j.kernel.api.index.SchemaIndexProvider
推荐答案
将与Neo4j相关的jar分开保存,即不要将它们捆绑在您创建的jar中.相反,只需使用类路径选项在运行时指向Neo4j库即可.
Keep Neo4j related jars seperate, i.e do not bundle them inside the jar you create. Instead just make use of class path option to point Neo4j libraries in run time.
这篇关于从Linux连接到Neo4j的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!