Проблемы неуправляемого расширения с Neo4j 3.3.0 в Windows
Я написал неуправляемое расширение для версии Neo4j 3.2.3, и оно отлично работает. Затем я изменил версию Neo4j в pom.xml на 3.3.0 - и получил две ошибки:
1) Тесты получили ошибку:
java.util.ServiceConfigurationError: org.neo4j.configuration.LoadableConfig: Provider org.neo4j.ext.udc.UdcSettings could not be instantiated
at java.util.ServiceLoader.fail(ServiceLoader.java:232)
at java.util.ServiceLoader.access$100(ServiceLoader.java:185)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at org.neo4j.configuration.LoadableConfig.allConfigClasses(LoadableConfig.java:103)
at org.neo4j.kernel.configuration.Config$Builder.build(Config.java:285)
at org.neo4j.kernel.configuration.Config.defaults(Config.java:354)
at org.neo4j.harness.internal.InProcessServerBuilder.createNeoServer(InProcessServerBuilder.java:47)
at org.neo4j.harness.internal.AbstractInProcessServerBuilder.newServer(AbstractInProcessServerBuilder.java:149)
at org.neo4j.harness.junit.Neo4jRule$1.evaluate(Neo4jRule.java:73)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.NoSuchMethodError: org.neo4j.kernel.configuration.Settings.setting(Ljava/lang/String;Ljava/util/function/Function;Ljava/lang/String;)Lorg/neo4j/graphdb/config/BaseSetting;
at org.neo4j.ext.udc.UdcSettings.<clinit>(UdcSettings.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
... 30 more
2) Я пропустил тесты, собрал банку и поместил ее в папку с плагинами, затем добавил необходимые dbms.unmanaged_extension_classes
запись в файл conf.
Я управлял C:\neo4j-community-3.3.0-windows\neo4j-community-3.3.0> bin\neo4j.bat
консоль и получил эту ошибку:
2017-11-19 18:42:34.049+0000 ERROR Failed to start Neo4j: Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabase@8462f31' was successfully initialized, but failed to start. Please see the attached cause exception "org.neo4j.kernel.api.impl.index.builder.LuceneIndexStorageBuilder.withIndexIdentifier(Ljava/lang/String;)Lorg/neo4j/kernel/api/impl/index/builder/LuceneIndexStorageBuilder;". Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabase@8462f31' was successfully initialized, but failed to start. Please see the attached cause exception "org.neo4j.kernel.api.impl.index.builder.LuceneIndexStorageBuilder.withIndexIdentifier(Ljava/lang/String;)Lorg/neo4j/kernel/api/impl/index/builder/LuceneIndexStorageBuilder;".
org.neo4j.server.ServerStartupException: Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabase@8462f31' was successfully initialized, but failed to start. Please see the attached cause exception "org.neo4j.kernel.api.impl.index.builder.LuceneIndexStorageBuilder.withIndexIdentifier(Ljava/lang/String;)Lorg/neo4j/kernel/api/impl/index/builder/LuceneIndexStorageBuilder;".
at org.neo4j.server.exception.ServerStartupErrors.translateToServerStartupError(ServerStartupErrors.java:68)
at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:218)
at org.neo4j.server.ServerBootstrapper.start(ServerBootstrapper.java:111)
at org.neo4j.server.ServerBootstrapper.start(ServerBootstrapper.java:79)
at org.neo4j.server.CommunityEntryPoint.main(CommunityEntryPoint.java:32)
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.server.database.LifecycleManagingDatabase@8462f31' was successfully initialized, but failed to start. Please see the attached cause exception "org.neo4j.kernel.api.impl.index.builder.LuceneIndexStorageBuilder.withIndexIdentifier(Ljava/lang/String;)Lorg/neo4j/kernel/api/impl/index/builder/LuceneIndexStorageBuilder;".
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:466)
at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:107)
at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:210)
... 3 more
Caused by: java.lang.RuntimeException: Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory, C:\neo4j-community-3.3.0-windows\neo4j-community-3.3.0\data\databases\graph.db
at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.initFacade(GraphDatabaseFacadeFactory.java:211)
at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.newFacade(GraphDatabaseFacadeFactory.java:126)
at org.neo4j.server.CommunityNeoServer.lambda$static$0(CommunityNeoServer.java:58)
at org.neo4j.server.database.LifecycleManagingDatabase.start(LifecycleManagingDatabase.java:88)
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:445)
... 5 more
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.extension.KernelExtensions@31ea9581' failed to initialize. Please see the attached cause exception "org.neo4j.kernel.api.impl.index.builder.LuceneIndexStorageBuilder.withIndexIdentifier(Ljava/lang/String;)Lorg/neo4j/kernel/api/impl/index/builder/LuceneIndexStorageBuilder;".
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:427)
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.initFacade(GraphDatabaseFacadeFactory.java:207)
... 9 more
Caused by: java.lang.NoSuchMethodError: org.neo4j.kernel.api.impl.index.builder.LuceneIndexStorageBuilder.withIndexIdentifier(Ljava/lang/String;)Lorg/neo4j/kernel/api/impl/index/builder/LuceneIndexStorageBuilder;
at org.neo4j.kernel.api.impl.labelscan.LuceneLabelScanIndexBuilder.<init>(LuceneLabelScanIndexBuilder.java:39)
at org.neo4j.kernel.api.impl.labelscan.LuceneLabelScanIndexBuilder.create(LuceneLabelScanIndexBuilder.java:49)
at org.neo4j.kernel.api.impl.labelscan.LuceneLabelScanStoreExtension.getIndexBuilder(LuceneLabelScanStoreExtension.java:95)
at org.neo4j.kernel.api.impl.labelscan.LuceneLabelScanStoreExtension.newInstance(LuceneLabelScanStoreExtension.java:80)
at org.neo4j.kernel.api.impl.labelscan.LuceneLabelScanStoreExtension.newInstance(LuceneLabelScanStoreExtension.java:44)
at org.neo4j.kernel.extension.KernelExtensions.newInstance(KernelExtensions.java:78)
at org.neo4j.kernel.extension.KernelExtensions.init(KernelExtensions.java:61)
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:406)
... 12 more
2017-11-19 18:42:34.058+0000 INFO Neo4j Server shutdown initiated by request
Почему возникает эта ошибка?
Обновить:
Я использую шаблон неуправляемого расширения "dmontag" и использую hes pom.xml. Теперь все тесты зеленые, но когда я запустил C:\neo4j-community-3.3.0-
windows\neo4j-community-3.3.0> bin\neo4j.bat console
Я получил новую ошибку:
2017-11-20 11:11:46.776+0000 ERROR Failed to start Neo4j: Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabase@1db1c92b' was successfully initialized, but failed to start. Please see the attached cause exception "Unable to register procedure, because the name `dbms.functions` is already in use.". Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabase@1db1c92b' was successfully initialized, but failed to start. Please see the attached cause exception "Unable to register procedure, because the name `dbms.functions` is already in use.".
org.neo4j.server.ServerStartupException: Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabase@1db1c92b' was successfully initialized, but failed to start. Please see the attached cause exception "Unable to register procedure, because the name `dbms.functions` is already in use.".
at org.neo4j.server.exception.ServerStartupErrors.translateToServerStartupError(ServerStartupErrors.java:68)
at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:218)
at org.neo4j.server.ServerBootstrapper.start(ServerBootstrapper.java:111)
at org.neo4j.server.ServerBootstrapper.start(ServerBootstrapper.java:79)
at org.neo4j.server.CommunityEntryPoint.main(CommunityEntryPoint.java:32)
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.server.database.LifecycleManagingDatabase@1db1c92b' was successfully initialized, but failed to start. Please see the attached cause exception "Unable to register procedure, because the name `dbms.functions` is already in use.".
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:466)
at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:107)
at org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:210)
... 3 more
Caused by: java.lang.RuntimeException: Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory, C:\neo4j-community-3.3.0-windows\neo4j-community-3.3.0\data\databases\graph.db
at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.initFacade(GraphDatabaseFacadeFactory.java:211)
at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.newFacade(GraphDatabaseFacadeFactory.java:126)
at org.neo4j.server.CommunityNeoServer.lambda$static$0(CommunityNeoServer.java:58)
at org.neo4j.server.database.LifecycleManagingDatabase.start(LifecycleManagingDatabase.java:88)
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:445)
... 5 more
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.impl.proc.Procedures@2bd03dfe' was successfully initialized, but failed to start. Please see the attached cause exception "Unable to register procedure, because the name `dbms.functions` is already in use.".
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:466)
at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:107)
at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.initFacade(GraphDatabaseFacadeFactory.java:207)
... 9 more
Caused by: org.neo4j.kernel.api.exceptions.ProcedureException: Unable to register procedure, because the name `dbms.functions` is already in use.
at org.neo4j.kernel.impl.proc.ProcedureRegistry.register(ProcedureRegistry.java:84)
at org.neo4j.kernel.impl.proc.Procedures.register(Procedures.java:123)
at org.neo4j.kernel.impl.proc.Procedures.register(Procedures.java:78)
at org.neo4j.kernel.impl.proc.Procedures.start(Procedures.java:278)
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:445)
... 11 more
2017-11-20 11:11:46.791+0000 INFO Neo4j Server shutdown initiated by request
Вот мой pom.xml:
<dependencies>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>${neo4j.version}</version>
</dependency>
<dependency>
<groupId>org.neo4j.app</groupId>
<artifactId>neo4j-server</artifactId>
<version>${neo4j.version}</version>
</dependency>
<dependency>
<groupId>org.neo4j.test</groupId>
<artifactId>neo4j-harness</artifactId>
<version>${neo4j.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.5</version>
</dependency>
<dependency>
<groupId>com.mashape.unirest</groupId>
<artifactId>unirest-java</artifactId>
<version>1.4.9</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpasyncclient</artifactId>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>