我在应用程序框架中使用Neo4J 1.8.x
作为嵌入式数据库,打破了ServiceLoader
使用的常规Neo4j
。到目前为止,我使用OSGi instructions for Neo4j解决了这个问题。这很有效。
但是,这些OSGi
说明不再适用于1.9.0
,1.9.1
或2.0.0-M03
。初始化嵌入式数据库时,我得到以下异常:
java.lang.ExceptionInInitializerError
at plugins.fritter.Fritter.setupNeo4j(Fritter.java:240)
at plugins.fritter.Fritter.runPlugin(Fritter.java:106)
at freenet.pluginmanager.PluginHandler.startPlugin(PluginHandler.java:45)
at freenet.pluginmanager.PluginManager.realStartPlugin(PluginManager.java:394)
at freenet.pluginmanager.PluginManager.startPluginFile(PluginManager.java:367)
at freenet.clients.http.PproxyToadlet$3.run(PproxyToadlet.java:157)
at freenet.support.PooledExecutor$MyThread.innerRun(PooledExecutor.java:247)
at freenet.support.PooledExecutor$MyThread.realRun(PooledExecutor.java:187)
at freenet.support.io.NativeThread.run(NativeThread.java:129)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at org.neo4j.graphdb.factory.GraphDatabaseSettings.<clinit>(GraphDatabaseSettings.java:79)
... 9 more
我知道OSGi
设置说明已从1.9.0
及更高版本OSGI更改,但新的初始化方法无法解决此问题。
是neo4j
&gt;在1.8.3
/ non-ServiceLoader
上下文中仍然支持OSGi
,如果是,那么设置它的正确方法是什么?