Neo4j 3.0.x PostingsFormat mit dem Namen 'BlockTreeOrds' existiert nicht

Ich habe versucht, von Neo4j 2.3 auf 3.0.1 zu aktualisieren. Ich kann die Datenbank als Dienst starten, kein Problem.

Aber wenn ich versuche, eine ausführbare Neo4j-Datei zu erstellen und auszuführen, finde ich einen Fehler, den ich nicht beheben kann. Unter Neo4j 2.x kann ich problemlos ausführbare Dateien erstellen. Unten ist meine Hauptmethode:

public class StartDB {
    public static void main(String[] args) {
        new GraphDatabaseFactory()
        .newEmbeddedDatabaseBuilder(Paths.get(args[0]).toFile())
        .loadPropertiesFromFile(args[1])
        .newGraphDatabase();
    }
}

Ich habe einen einfachen POM mit 1 Abhängigkeit:<dependencies> <dependency> <groupId>org.neo4j</groupId> <artifactId>neo4j</artifactId> <version>3.0.1</version> </dependency> </dependencies>

Die Befehlszeilenargumente sind die Pfade zu meiner Datenbank bzw. zu meiner Konfiguration. Nachfolgend finden Sie die Stapelverfolgung dieses Diagramminstanziierungsfehlers.

Exception in thread "main" java.lang.RuntimeException: Error starting org.neo4j.kernel.impl.factory.CommunityFacadeFactory, /home/glemmon/UPDB/data/neo4j-3.0.1/data/databases/graph.db
    at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.initFacade(GraphDatabaseFacadeFactory.java:144)
    at org.neo4j.kernel.impl.factory.CommunityFacadeFactory.initFacade(CommunityFacadeFactory.java:40)
    at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.newFacade(GraphDatabaseFacadeFactory.java:108)
    at org.neo4j.graphdb.factory.GraphDatabaseFactory.newDatabase(GraphDatabaseFactory.java:99)
    at org.neo4j.graphdb.factory.GraphDatabaseFactory.lambda$createDatabaseCreator$206(GraphDatabaseFactory.java:88)
    at org.neo4j.graphdb.factory.GraphDatabaseFactory$Lambda$1/1313922862.newDatabase(Unknown Source)
    at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:183)
    at test.StartDB.main(StartDB.java:11)
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.impl.storageengine.impl.recordstorage.RecordStorageEngine@5483163c' failed to initialize. Please see attached cause exception.
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:415)
    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:502)
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:433)
    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:433)
    at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:107)
    at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.initFacade(GraphDatabaseFacadeFactory.java:140)
    ... 7 more
Caused by: java.lang.IllegalArgumentException: An SPI class of type org.apache.lucene.codecs.PostingsFormat with name 'BlockTreeOrds' does not exist.  You need to add the corresponding JAR file supporting this SPI to your classpath.  The current classpath supports the following names: [Lucene50]
    at org.apache.lucene.util.NamedSPILoader.lookup(NamedSPILoader.java:114)
    at org.apache.lucene.codecs.PostingsFormat.forName(PostingsFormat.java:112)
    at org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader.<init>(PerFieldPostingsFormat.java:258)
    at org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.fieldsProducer(PerFieldPostingsFormat.java:341)
    at org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:104)
    at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:65)
    at org.apache.lucene.index.ReadersAndUpdates.getReader(ReadersAndUpdates.java:145)
    at org.apache.lucene.index.ReadersAndUpdates.getReadOnlyClone(ReadersAndUpdates.java:197)
    at org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:99)
    at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:435)
    at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:100)
    at org.apache.lucene.search.SearcherManager.<init>(SearcherManager.java:106)
    at org.apache.lucene.search.SearcherManager.<init>(SearcherManager.java:76)
    at org.neo4j.kernel.api.impl.index.partition.IndexPartition.<init>(IndexPartition.java:54)
    at org.neo4j.kernel.api.impl.index.AbstractLuceneIndex.open(AbstractLuceneIndex.java:101)
    at org.neo4j.kernel.api.impl.schema.LuceneSchemaIndexProvider.indexIsOnline(LuceneSchemaIndexProvider.java:178)
    at org.neo4j.kernel.api.impl.schema.LuceneSchemaIndexProvider.getInitialState(LuceneSchemaIndexProvider.java:123)
    at org.neo4j.kernel.impl.api.index.IndexingService.init(IndexingService.java:200)
    at org.neo4j.kernel.impl.storageengine.impl.recordstorage.RecordStorageEngine.init(RecordStorageEngine.java:403)
    at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:405)
    ... 16 more

Da ich die DB als Dienst mit "bin / neo4j" starten kann, dachte ich, dass es eine Diskrepanz zwischen den Dateien unter /neo4j-community/3.0.1/lib und den von Maven bereitgestellten Dateien geben muss. Ich habe versucht, meine ausführbare Datei mit Java -cp "/neo4j-community/3.0.1/lib/*" ohne Erfolg auszuführen. Jede Hilfe wäre dankbar.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage