Prabjot Singh
Prabjot Singh

Reputation: 1

Neo4j embedded server in HA mode

I am trying to use neo4j embedded server in HA mode with spring data neo4j.I am getting error of class loading. i have put all the jars. I am trying to use neo4j embedded server in HA mode with spring data neo4j.I am getting error of class loading. i have put all the jars.

    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"

Upvotes: 0

Views: 226

Answers (2)

Jotschi
Jotschi

Reputation: 3622

This example may also help you with the java code. (Neo4j 2.1.2)

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

snippet:

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

Upvotes: 0

Stefan Armbruster
Stefan Armbruster

Reputation: 39905

Due to an API change in Neo4j 1.9 you cannot instantiate HighlyAvailableGraphDatabase directly. Instead you should use HighlyAvailableGraphdatabaseFactory. Please see one of my gists showing how you can use it: https://gist.github.com/sarmbruster/6222698

Upvotes: 2

Related Questions