Neo4j configuration with a spring aplicationContext and an external neo4j server

556 views Asked by At

I am developing a RESTful web service using Spring and Neo4j as database. I installed Neo4j 3.0.7 on my Windows 7 system. I was able to develop a CRUD API using the following line in my Spring configuration: <neo4j:config storeDirectory="C:\demo.graphdb" base-package="test.model"/>.

Now I want to connect my existing Neo4j database that is running at localhost:7474 but am getting an exception during deployment of the WAR file:

Configuration problem: Unable to locate Spring NamespaceHandler for
XML schema namespace
[http://www.springframework.org/schema/data/neo4j] Offending resource:
ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]

My whole Spring applicationContext is:

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

  <context:component-scan base-package="test.*" />  
  <context:property-placeholder location="classpath:spring.properties" ignore-unresolvable="true" />    
  <mvc:annotation-driven />
  <mvc:default-servlet-handler />

  <bean id="graphDataBaseService" class="org.springframework.data.neo4j.rest.SpringRestGraphDatabase" >         <constructor-arg index="0" value="http://localhost:7474" />
    <constructor-arg index="1" value="neo4j"/>
    <constructor-arg index="2" value="dubai@1234"/>
  </bean>

  <neo4j:config graphDataBaseService="graphDataBaseService" base-package="test.model" />
    <neo4j:repositories base-package="test.dao"/>
  </beans>

I am using:

  • Spring Data Neo4j version 4.1.6.RELEASE
  • Neo4j version 3.0.7
  • Spring WebMvc version 4.1.1.RELEASE
1

There are 1 answers

1
František Hartman On BEST ANSWER

Spring Data Neo4j 4.x doesn't support XML configuration (this was dropped during 3.x -> 4.x rewrite).

See http://docs.spring.io/spring-data/neo4j/docs/current/reference/html/#_java_based_bean_configuration