2014-10-20 113 views
0

我想在HA模式下使用neo4j嵌入式服務器,彈簧數據neo4j.I出現類加載錯誤。我已經把所有的罐子。 我試圖在HA模式下使用neo4j嵌入式服務器,彈簧數據爲neo4j.I出現類加載錯誤。我已經把所有的罐子。Neo4j嵌入式HA服務器模式

Running Grails application 
     | Error 2014-10-18 17:27:46,878 [localhost-startStop-1] ERROR spring.GrailsRuntimeConfigurator - [RuntimeConfiguration] Unable to perform post initialization config: file:./grails-app/conf/spring/resources.xml 
     Message: org.neo4j.kernel.HighlyAvailableGraphDatabase 
     Line | Method 
     ->> 366 | run in java.net.URLClassLoader$1 

     | 355 | run in '' 
     | 354 | findClass in java.net.URLClassLoader 
     | 425 | loadClass in java.lang.ClassLoader 
     | 262 | run . . . in java.util.concurrent.FutureTask 
     | 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor 
     | 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker 

    and my xml configuration is 

     <?xml version="1.0" encoding="UTF-8"?> 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:neo4j="http://www.springframework.org/schema/data/neo4j" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/data/neo4j 
     http://www.springframework.org/schema/data/neo4j/spring-neo4j.xsd"> 

     <context:component-scan base-package="neo4j"></context:component-scan> 
     <bean id="haDatabase" class="org.neo4j.kernel.HighlyAvailableGraphDatabase" 
      destroy-method="shutdown"> 
      <constructor-arg index="0" value="target/db" /> 
      <constructor-arg index="1"> 
       <map> 
        <entry key="ha.server_id" value="1" /> 
        <entry key="ha.server" value="localhost:6001" /> 
        <entry key="ha.coordinators" value="localhost:2181,localhost:2182,localhost:2183" /> 
       </map> 
      </constructor-arg> 
     </bean> 
     <neo4j:config graphDatabaseService="haDatabase" base-package="neo4j"/> 
     <bean id="config" 
      class="org.springframework.data.neo4j.config.DataGraphNamespaceHandlerTests$Config" /> 
     <neo4j:repositories base-package="neo4jRepository" /> 

and i have dependencies are 
compile "org.springframework.data:spring-data-neo4j:3.2.0.RELEASE" 
compile "org.neo4j:neo4j-enterprise:2.1.5" 
compile "org.neo4j:neo4j-ha:2.1.5" 
compile "org.neo4j:neo4j-cluster:jar:2.0.0" 

回答

2

由於Neo4j 1.9中的API更改,您無法直接實例化HighlyAvailableGraphDatabase。相反,你應該使用HighlyAvailableGraphdatabaseFactory。請參閱我的要點之一以顯示如何使用它:https://gist.github.com/sarmbruster/6222698

0

本示例還可能會幫助您使用java代碼。 (Neo4j的2.1.2)

https://github.com/Jotschi/neo4j-ha-example

片段:

GraphDatabaseBuilder builder = new HighlyAvailableGraphDatabaseFactory().newHighlyAvailableDatabaseBuilder(DB_LOCATION); 

    builder.setConfig(ClusterSettings.server_id, SERVER_ID); 
    builder.setConfig(HaSettings.ha_server, "localhost:6001"); 
    builder.setConfig(HaSettings.slave_only, Settings.FALSE); 
    builder.setConfig(ClusterSettings.cluster_server, "localhost:5001"); 
    builder.setConfig(ClusterSettings.initial_hosts, "localhost:5001,localhost:5002"); 

    graphDb = builder.newGraphDatabase();