简体   繁体   English

无法在Java中启动Neo4j-DB

[英]Unable to start Neo4j-DB in Java

I upgraded my Neo4j-Database from 2.2.0 to 3.0.3. 我将Neo4j数据库从2.2.0升级到了3.0.3。 I am getting the following error-message trying to start it from Java: 我收到以下错误消息,试图从Java启动它:

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 'org.neo4j.kernel.extension.KernelExtensions@42cdc8d0' 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

This is the relevant Code: 这是相关的代码:

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 );
    }
    }

And these are the Neo4j-Jars I have in my POM: 这些是我在POM中拥有的Neo4j-Jars:

 <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> 

Sadly I have very little experience with both Maven and Neo4j and Im unable to figure out the source of the problem I tried using the dependencies from the old DB-Version (2.2.0) but got an errormessage that "neostore.nodestore.db does not contain a store version" 不幸的是,我对Maven和Neo4j的经验很少,我无法找出问题的根源,我尝试使用旧版DB-Version(2.2.0)的依赖项,但是收到了一个错误消息,指出“ neostore.nodestore.db可以不包含商店版本”

I am able to run the DB without issues through the Neo4j-3.0.3-Application. 我可以通过Neo4j-3.0.3-Application运行数据库而不会出现问题。

Any help would be appreciated! 任何帮助,将不胜感激!

So I was indeed able to confirm that this is a buildpathissue by creating a new project without any of the other dependencies and running the code which worked fine. 因此,我确实可以通过创建一个没有任何其他依赖项的新项目并运行可以正常工作的代码来确认这是一个buildpathissue。

Thank you for your help! 谢谢您的帮助!

Edit: I have now found the cause of my problem: I had the dbpedia-spotlight.jar as an external archive which also contains the lucene-jars which lead to errors when trying to start a Neo4j-Server. 编辑:我现在发现了问题的原因:我将dbpedia-spotlight.jar作为外部存档,其中也包含lucene-jar,这会在尝试启动Neo4j-Server时导致错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM