2

Java から Neo4j に接続しようとすると、次のエラーが発生します。

スレッド「メイン」で例外 java.lang.RuntimeException: org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:323) で org.neo4j.kernel.EmbeddedGraphDatabase、/data/graph.db を開始中にエラーが発生しました。 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) 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) 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

見つかった。クラスパスで利用可能なカーネル拡張:

クラス パス エントリ: /...../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) 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 コードを実行しています。Windowsマシンでも同じjarファイルとJavaコードがうまく機能します。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: No schema index provider org.neo4j.kernel.api.index.SchemaIndexProvider foundの原因を教えてください。

4

3 に答える 3

6

クラスパスにneo4j-lucene-indexがないようです。そのヒントが役に立たない場合は、クラスパスにある jar のリストを提供してください。

于 2013-10-26T18:22:53.007 に答える
4

Neo4j 関連の jar は別々に保管してください。つまり、作成した jar 内にそれらをバンドルしないでください。代わりに、実行時に Neo4j ライブラリを指すクラスパス オプションを使用します。

于 2013-11-16T09:01:58.863 に答える
4

同じエラーが発生しましたが、最終的に、エラーの原因となったのは 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"

これは私のエラーを修正しました。

于 2013-12-10T02:22:07.233 に答える