2016-07-16 74 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-服务器时会导致错误的外部档案。