2016-07-12 15 views
0

私のJavaプログラムからneo4jデータベースにアクセスしようとしています。私は新鮮なDBを作成し、それを照会しようとした、そしてそれがあたりとして正常に実行されました:http://neo4j.com/docs/java-reference/current/#tutorials-java-embeddedJVMのNeo4jが組み込まれています

コード:

String DB_PATH = "C:/Users/singsand/Documents/Neo4j/newdb"; 
    File f=new File(DB_PATH); 
    GraphDatabaseService graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(f); 
    try (Transaction tx=graphDb.beginTx()){ 
     graphDb.execute("CREATE (table1:car {name:'car1'})"); 
     tx.success(); 
    } 

しかし、私はのNeo4jコミュニティ版のツールを介してサーバとしてこのデシベルを開始し、またアクセスそれは私のブラウザを通して。その後

、私は上記使用したのと同じJavaプログラムを実行すると、それは次のようなエラーがスローされます。

Exception in thread "main" java.lang.RuntimeException: Error starting org.neo4j.kernel.impl.factory.CommunityFacadeFactory, C:\Users\singsand\Documents\Neo4j\newdb 
    at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.newFacade(GraphDatabaseFacadeFactory.java:144) 
    at org.neo4j.kernel.impl.factory.CommunityFacadeFactory.newFacade(CommunityFacadeFactory.java:40) 
    at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.newFacade(GraphDatabaseFacadeFactory.java:108) 
    at org.neo4j.graphdb.factory.GraphDatabaseFactory.newDatabase(GraphDatabaseFactory.java:100) 
    at org.neo4j.graphdb.factory.GraphDatabaseFactory.lambda$createDatabaseCreator$193(GraphDatabaseFactory.java:89) 
    at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:183) 
    at org.neo4j.graphdb.factory.GraphDatabaseFactory.newEmbeddedDatabase(GraphDatabaseFactory.java:65) 
    at neo4j.neo4jdemo.App.main(App.java:41) 
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component '[email protected]' failed to initialize. Please see attached cause exception. 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:416) 
    at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:62) 
    at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:98) 
    at org.neo4j.kernel.NeoStoreDataSource.start(NeoStoreDataSource.java:508) 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:434) 
    at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:107) 
    at org.neo4j.kernel.impl.transaction.state.DataSourceManager.start(DataSourceManager.java:99) 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:434) 
    at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:107) 
    at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.newFacade(GraphDatabaseFacadeFactory.java:140) 
    ... 7 more 
Caused by: java.lang.IllegalArgumentException: Unrecognized log entry version -9. At position LogPosition{logVersion=0, byteOffset=16} and entry version null 
    at org.neo4j.kernel.impl.transaction.log.entry.LogEntryVersion.byVersion(LogEntryVersion.java:147) 
    at org.neo4j.kernel.impl.transaction.log.entry.VersionAwareLogEntryReader.readLogEntry(VersionAwareLogEntryReader.java:83) 
    at org.neo4j.kernel.impl.transaction.log.LogEntryCursor.next(LogEntryCursor.java:50) 
    at org.neo4j.kernel.recovery.LatestCheckPointFinder.find(LatestCheckPointFinder.java:77) 
    at org.neo4j.kernel.recovery.PositionToRecoverFrom.apply(PositionToRecoverFrom.java:53) 
    at org.neo4j.kernel.recovery.DefaultRecoverySPI.getPositionToRecoverFrom(DefaultRecoverySPI.java:112) 
    at org.neo4j.kernel.recovery.Recovery.init(Recovery.java:72) 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:406) 
    ... 16 more 

私は他のスタックオーバーフローの質問に同様のエラーを見て、私を解決することができませんでしたしています解決策を使用して問題を解決します。

+0

この質問と再ポストにそれを削除しましたか?同じデータベースファイルを使用して、スタンドアロンと組み込みのサーバー*を同時に実行しようとしていることを明確にすることを覚えています。 –

+0

いいえ、私はスタンドアロンと組み込みバージョンを同時に実行しようとしていません。だから、私がやったのは:組み込みとして実行し、データベースにいくつかのノードを置く。その後、Neo4jツールを使用してサーバーとして起動し、ブラウザで表示します。その後、私はツールからサーバーを停止しました。それから私は私のプログラムを通して埋め込みとして再び使用しようとしました。それは私がこのエラーを取得するときです。 –

答えて

1

私は正しく理解しています。アプリケーションにNeo4jの組み込みバージョンを使用していて、ローカルホスト上でNeo4jサーバーを起動しようとしています。そうですか?

Neo4j Server vs Embedded mode

事が埋め込まれたのNeo4jは、Javaアプリケーションの一部として実行されています。 Neo4jサーバは、独立して動作するスタンドアロンサービスです。そして、あなたはそれらの2つを同じdbに組み合わせることはできません。

あなたはこのdbの組み込みでのNeo4jブラウザを使用したい場合は、あなたを助けるべきである - http://graphaware.com/neo4j/2014/11/21/neo4j-browser-with-embedded.html

+0

私は自分のプログラムでNeo4jの組み込みバージョンを使用していました。そのプログラムが終了した後、Neo4jコミュニティー・エディション・ツールを使用して同じDBをサーバーとして開始し、ブラウザーからアクセスしました。 dbを埋め込んだ同じプログラムを実行すると、エラーが発生します。 あなたが言ったことを理解すると、その時点でプログラムが実行されていないのに、Neo4jツールを使ってサービスとして使用することはできません。 –

関連する問題