2016-07-16 71 views
0

我將我的Neo4j-Database從2.2.0升級到3.0.3。我收到以下錯誤消息試圖從Java啓動:無法在Java中啓動Neo4j-DB

Exception in thread "main" java.lang.RuntimeException: Error starting org.neo4j.kernel.impl.factory.CommunityFacadeFactory, F:\DLs\DB 
    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$203(GraphDatabaseFactory.java:89) 
    at org.neo4j.graphdb.factory.GraphDatabaseFactory$$Lambda$1/1020923989.newDatabase(Unknown Source) 
    at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:183) 
    at Neo4j.Neo4j.startServer(Neo4j.java:22) 
    at countAnnotator.Main.main(Main.java:32) 
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.impl.factory.GraphDatabaseFacadeFactory.newFacade(GraphDatabaseFacadeFactory.java:140) 
    ... 8 more 
Caused by: java.lang.VerifyError: Cannot inherit from final class 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.neo4j.kernel.api.impl.labelscan.storestrategy.BitmapDocumentFormat.<clinit>(BitmapDocumentFormat.java:40) 
    at org.neo4j.kernel.api.impl.labelscan.LuceneLabelScanIndexBuilder.<init>(LuceneLabelScanIndexBuilder.java:34) 
    at org.neo4j.kernel.api.impl.labelscan.LuceneLabelScanIndexBuilder.create(LuceneLabelScanIndexBuilder.java:49) 
    at org.neo4j.kernel.api.impl.labelscan.LuceneLabelScanStoreExtension.getLuceneIndex(LuceneLabelScanStoreExtension.java:90) 
    at org.neo4j.kernel.api.impl.labelscan.LuceneLabelScanStoreExtension.newInstance(LuceneLabelScanStoreExtension.java:79) 
    at org.neo4j.kernel.api.impl.labelscan.LuceneLabelScanStoreExtension.newInstance(LuceneLabelScanStoreExtension.java:40) 
    at org.neo4j.kernel.extension.KernelExtensions.init(KernelExtensions.java:69) 
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:406) 
    ... 11 more 

這是相關代碼:

public class Neo4j { 
    static File dir = new File("F:/DLs/DB/"); 
    GraphDatabaseService graphDb; 

    public void startServer(){ 

     graphDb = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(dir) 
       .setConfig(GraphDatabaseSettings.read_only, "true") 
       .newGraphDatabase(); 
     registerShutdownHook(graphDb); 
    } 
    } 

而且這些都是Neo4j的-罐子我已經在我的POM:

<dependency> 
    <groupId>org.neo4j</groupId> 
    <artifactId>neo4j</artifactId> 
    <version>3.0.3</version> 
    </dependency> 
     <dependency> 
    <groupId>org.neo4j</groupId> 
    <artifactId>neo4j-bolt</artifactId> 
    <version>3.0.3</version> 
    </dependency> 
    <dependency> 
    <groupId>org.neo4j</groupId> 
    <artifactId>neo4j-kernel</artifactId> 
    <version>3.0.3</version> 
    </dependency> 
    <dependency> 
    <groupId>org.neo4j</groupId> 
    <artifactId>neo4j-cypher</artifactId> 
    <version>3.0.3</version> 
</dependency> 

<dependency> 
    <groupId>org.neo4j</groupId> 
    <artifactId>neo4j-lucene-index</artifactId> 
    <version>3.0.3</version> 
</dependency> 

可悲的是我有兩個Maven和Neo4j的和Im無法找出問題 我使用舊DB-版本(2.2依賴試過源非常缺乏經驗。 0),但得到了一個錯誤消息「neostore.nodestore.db不包含商店版本」

我能夠通過Neo4j-3.0.3-應用程序沒有問題地運行數據庫。

任何幫助,將不勝感激!

+0

看起來像構建路徑問題。您是使用IDE編譯並運行,還是從命令行執行? – johnnyaug

+0

我正在使用Eclipse – user2299050

+1

您的構建路徑中可能有2個不同的jar庫。你對其中一個進行編譯,但是與另一個相反。我記得Lucene有這樣的問題。你可以在那裏有兩個不同版本的Lucene嗎? – johnnyaug

回答

0

所以我確實能夠通過創建一個沒有任何其他依賴項的新項目並運行正常工作的代碼來確認這是一個buildpathissue。

謝謝你的幫助!

編輯: 我現在已經找到了我的問題的原因: 我有DBpedia中,spotlight.jar作爲其中也包含了Lucene,罐子嘗試啓動的Neo4j-服務器時會導致錯誤的外部檔案。