簡體   English   中英

在JVM中嵌入Neo4j

[英]embedded Neo4j in JVM

我正在嘗試從我的Java程序訪問neo4j數據庫。 我嘗試創建一個新的數據庫並對其進行查詢,並按照以下說明成功運行: http : //neo4j.com/docs/java-reference/current/#tutorials-java-embedded

碼:

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 'org.neo4j.kernel.recovery.Recovery@62fca613' 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

我在其他Stack Overflow問題中也看到了類似的錯誤,但是無法使用他們的解決方案解決我的問題。

如果我理解正確。 您正在應用程序中使用Neo4j的嵌入式版本,而不是嘗試在本地主機上啟動Neo4j服務器。 那正確嗎?

Neo4j服務器與嵌入式模式

事實是,嵌入式Neo4j作為Java應用程序的一部分運行。 Neo4j服務器是獨立運行的服務,可單獨運行。 而且您不能將這兩個數據庫合並在同一數據庫上。

如果你想使用Neo4j的瀏覽器與嵌入式數據庫這應該幫助你- http://graphaware.com/neo4j/2014/11/21/neo4j-browser-with-embedded.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM