2
votes

im working on my scaffold and i can't seem to get Neo embedded to initialize. I am using Neo 2, so I am running spring data 3.0.0.m1. I can't get it to light up. Here is my context

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       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"
       xmlns:tx="http://www.springframework.org/schema/tx"

       xsi:schemaLocation="http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
          http://www.springframework.org/schema/aop
          http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context-2.5.xsd
          http://www.springframework.org/schema/tx
          http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    <context:annotation-config/>
    <context:spring-configured />
    <context:component-scan base-package="com.onuspride.wisdom" />

    <tx:annotation-driven mode="aspectj" transaction-manager="transactionManager"/>

    <import resource="spring-data-Neo4j.xml" />

    <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
        <property name="transactionManager">
            <bean id="jotm" class="org.springframework.data.neo4j.transaction.JotmFactoryBean"/>
        </property>
    </bean>

    <bean id="graphDatabaseService" class="org.neo4j.kernel.EmbeddedGraphDatabase" destroy-method="shutdown">
        <constructor-arg value="target/test-db"/>
        <constructor-arg>
            <map>
                <entry key="tx_manager_impl" value="spring-jta"/>
            </map>
        </constructor-arg>
    </bean>

</beans>

But i get this exception

Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'graphDatabaseService' defined in class path resource [applicationContext.xml]: Unsatisfied dependency expressed through constructor argument with index 2 of type [java.lang.Iterable]: Ambiguous constructor argument types - did you specify the correct bean references as constructor arguments?
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:724)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1075)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:979)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)

I can't find anything anywhere saying there are more constructor parameters.

here's my dependencies

akka = '2.2.3'
        akkaSeries = '_2.10'
        apacheLog4jVersion = '2.0-beta9'
        aspectjVersion = '1.7.2'
        cglibVersion = '2.2.2'
        commonsCodecVersion = '1.5'
        commonsDigesterVersion = '2.1'
        commonsFileuploadVersion = '1.3'
        commonsLang3Version = '3.1'
        elApiVersion = '1.0'
        fasterxmlJacksonVersion = '2.3.0'
        flexJsonVersion = '2.1'
        ginVersion = '2.0.0'
        googleAPIClient = '1.17.0-rc'
        googleAPIDrive = 'v2-rev110-1.17.0-rc'
        googleAPIOauth2 = 'v2-rev59-1.17.0-rc'
        googleJackson = '1.15.0-rc'
        guavaVersion = '14.0.1'
        guiceVersion = '3.0'
        gwtpVersion = '1.0.3'
        gwtqueryVersion = '1.3.2'
        gwtsecurityVersion = '1.2.3'
        gwtVersion = '2.5.1'
        hamcrestDateVersion = '0.9.5'
        hibernateValidator = '5.0.2.Final'
        ioSpray = '1.2.0'
        javaxServletVersion = '3.0.1'
        jedisVersion = '2.1.0'
        jettyVersion = '9.1.0.v20131115'
        jodaTimeVersion = '1.6'
        json4sVersion = '3.2.6'
        jspApiVersion = '2.1'
        jstlApiVersion = '1.2'
        jukitoVersion = '1.1'
        junitVersion = '4.11'
        lmaxDistruptorVersion = '3.2.0'
        neo4jVersion = '2.0.0'
        persistenceApiVersion = '1.0'
        scalaLangVersion = '2.10.2'
        slf4jVersion = '1.7.5'
        socialSigninTwitterVersion = '1.1.0-SNAPSHOT'
        //springDataNeo4jVersion = '2.3.3.RELEASE'
        springDataNeo4jVersion = '3.0.0.M1'
        springDataRedis = '1.1.0.RELEASE'
        springJsResourcesVerison = '2.3.2.RELEASE'
        springJsVersion = '2.3.2.RELEASE'
        springScalaVersion = '1.0.0.RC1'
        springSecurityVersion = '3.2.0.RELEASE'
        springSocialGoogleVersion = '1.0.0.M3'
        springSocialVersion = '1.1.0.M4'
        springVersion = '3.2.6.RELEASE'
        tilesJspVersion = '2.2.2'

compile "com.lmax:disruptor:$lmaxDistruptorVersion"
        compile "com.typesafe.akka:akka-actor$akkaSeries:$akka"
        compile "com.typesafe.akka:akka-slf4j$akkaSeries:$akka"
        compile "io.spray:spray-can:$ioSpray"
        compile "io.spray:spray-routing:$ioSpray"
        compile "joda-time:joda-time:$jodaTimeVersion"
        compile "org.apache.logging.log4j:log4j-api:$apacheLog4jVersion"
        compile "org.apache.logging.log4j:log4j-core:$apacheLog4jVersion"
        compile "org.apache.logging.log4j:log4j-slf4j-impl:$apacheLog4jVersion"
        compile "org.hibernate:hibernate-validator:$hibernateValidator"
        compile "org.json4s:json4s-native_2.10:$json4sVersion"
        compile "org.scala-lang:scala-library:$scalaLangVersion"
        compile "org.springframework.data:spring-data-neo4j-aspects:$springDataNeo4jVersion"
        compile "org.springframework.data:spring-data-neo4j-tx:$springDataNeo4jVersion"
        compile "org.springframework.data:spring-data-neo4j:$springDataNeo4jVersion"
        compile "org.springframework.scala:spring-scala_2.10:$springScalaVersion"
        compile "org.springframework:spring-aop:$springVersion"
        compile "org.springframework:spring-aspects:$springVersion"
        compile "org.springframework:spring-context:$springVersion"
        compile "org.springframework:spring-core:$springVersion"
        compile "org.springframework:spring-tx:$springVersion"
        compile group: 'org.neo4j', name: 'neo4j', version: "$neo4jVersion"
        compile group: 'org.neo4j.app', name: 'neo4j-server', version: "$neo4jVersion", classifier: 'static-web'
        testCompile "junit:junit:$junitVersion"
        testCompile "org.mockito:mockito-all:1.9.5"
        testCompile "org.springframework:spring-test:$springVersion"
2

2 Answers

3
votes

Spring Data Neo4j 3.0.M1 only works with Neo4j 2.0.0-M06

The next milestone is almost ready, which then will work with Neo4j 2.0.0

2
votes

I had the same problem. Changing spring-data.xml to the following helped resolve the issue...

<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager"/>
<bean class="org.springframework.data.neo4j.config.Neo4jConfiguration"/>
<bean class="org.springframework.context.annotation.ConfigurationClassPostProcessor"/>
<bean id="graphDatabaseService" class="org.neo4j.kernel.EmbeddedGraphDatabase"
      destroy-method="shutdown" scope="singleton">
</bean>
<bean id="serverWrapper" class="org.neo4j.server.WrappingNeoServerBootstrapper" init-method="start" destroy-method="stop">
<constructor-arg index="0" ref="graphDatabaseService"/>
</bean>    
<neo4j:config storeDirectory="target/db/data"/>
<neo4j:repositories base-package="org.example.repository"/>