Monta
Monta

Reputation: 1180

Neo4jTemplate error when using standalone mode

In my project I'm using Spring 3 with Neo4j 2.0.1, I was using the embedded mode and everything was working fine. In my code I use the Neo4jTemplate (@Autowired in my services) as well as the GraphRepository and RelationshipOperationsRepository.

I wanted to migrate my coode to use the standalone mode. Here's what I did :

<!-- Neo4J -->
	<!-- neo4j:config storeDirectory="${neo.storeDir}" base-package="net.nextep.nextenergy.domain.graph" /-->
	<bean id="graphDatabase" class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase">
	    <constructor-arg value="http://localhost:7474/db/data/" index="0"/>
	</bean>
	<neo4j:repositories base-package="net.nextep.nextenergy.repository.graph" />

I tried to run it, I got this error :

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'neo4jTemplate' is defined

I tried then to remove the @Autowired Neo4jTemplate from my services, use @Autowired private SpringRestGraphDatabase graphDB and create a new Template this way private Neo4jTemplate template = new Neo4jTemplate((GraphDatabase) graphDB)

And I still get the same error :

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userNodeRepository': Cannot resolve reference to bean 'neo4jTemplate' while setting bean property 'neo4jTemplate'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'neo4jTemplate' is defined
...
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'neo4jTemplate' is defined
...

The UserNodeRepository :

    @Repository
    public interface UserNodeRepository extends GraphRepository<UserNode>, 
                                RelationshipOperationsRepository<UserNode>{
    public UserNode findById(String id);
    public Node findNodeById(String id);
    @Query("match (u:UserNode)-[:HABILITATED]->(f:Folder) where ID(u) = {0} return f")
    public Set<Folder> getAllowedFoldersFirstLevel(UserNode user);

}

Am I doing wrong?

Upvotes: 0

Views: 459

Answers (1)

Michael Hunger
Michael Hunger

Reputation: 41706

Name your bean "graphDatabaseService" and pass it to the config which you didn't create:

<neo4j:config graphDatabaseService="graphDatabaseService" base-package="net.nextep.nextenergy.domain.graph" />

<bean id="graphDatabaseService" class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase">
        <constructor-arg value="http://localhost:7474/db/data/" index="0"/>
    </bean>

<neo4j:repositories base-package="net.nextep.nextenergy.repository.graph" />

Upvotes: 1

Related Questions