2013-04-09 51 views
2

我试图配置我的应用程序上下文,以便能够在我的应用程序中使用带有嵌入式图形的Neo4j服务器,但没有取得太大的成功。我同时使用Spring Data(Mongo和Neo4j存储库方法)。这是我的应用程序上下文,它没有运行:Spring Data Neo4j:使用嵌入式服务器

<context:component-scan base-package="org.domain.team.project.*"/> 

<mongo:repositories base-package="org.domain.team.project.data.repositories.mongodb"/> 

    <!-- Neo4j --> 
    <!-- <neo4j:config storeDirectory="/data/production/graph.db"/> --> 
    <neo4j:repositories base-package="org.domain.team.project.data.repositories.neo4j"/> 

    <neo4j:config graphDatabaseService="graphDatabaseService" /> 
    <bean id="graphDatabaseService" class="org.neo4j.kernel.EmbeddedGraphDatabase" 
    destroy-method="shutdown"> 
     <constructor-arg index="0" value="/data/production/graph.db" /> 
     <constructor-arg index="1"> 
      <map><entry key="enable_remote_shell" value="true"/></map> 
     </constructor-arg> 
    </bean> 
    <bean id="serverWrapper" class="org.neo4j.server.WrappingNeoServerBootstrapper" 
     init-method="start" destroy-method="stop"> 
      <constructor-arg ref="graphDatabaseService"/> 
    </bean> 

如果我不使用这种方法,只需指定的存储目录(注释行)一切都正常运行。我怀疑这是SDN和neo4j-server之间的版本问题。这是我的POM:

<properties> 
    <spring.data.mongo.version>1.1.0.RELEASE</spring.data.mongo.version> 
    <spring.data.neo4j.version>2.1.0.RELEASE</spring.data.neo4j.version> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-mongodb</artifactId> 
     <version>${spring.data.mongo.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-neo4j</artifactId> 
     <version>${spring.data.neo4j.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.neo4j.app</groupId> 
     <artifactId>neo4j-server</artifactId> 
     <version>1.8.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.neo4j.app</groupId> 
     <artifactId>neo4j-server</artifactId> 
     <classifier>static-web</classifier> 
     <version>1.8.2</version> 
    </dependency> 
    </dependencies> 

其父作为依赖关系Spring(核心,上下文,测试)3.2.0发布。

具体错误显示为:

Caused by: java.lang.NoSuchFieldError: query_cache_size 
    at org.neo4j.cypher.ExecutionEngine.org$neo4j$cypher$ExecutionEngine$$getQueryCacheSize(ExecutionEngine.scala:95) 
    at org.neo4j.cypher.ExecutionEngine$$anon$1.<init>(ExecutionEngine.scala:91) 
    at org.neo4j.cypher.ExecutionEngine.<init>(ExecutionEngine.scala:91) 
    at org.neo4j.cypher.javacompat.ExecutionEngine.<init>(ExecutionEngine.java:54) 
    at org.neo4j.cypher.javacompat.ExecutionEngine.<init>(ExecutionEngine.java:44) 
    at org.springframework.data.neo4j.support.query.CypherQueryEngine.<init>(CypherQueryEngine.java:42) 
    at org.springframework.data.neo4j.support.DelegatingGraphDatabase.createCypherQueryEngine(DelegatingGraphDatabase.java:217) 
    at org.springframework.data.neo4j.support.DelegatingGraphDatabase.queryEngineFor(DelegatingGraphDatabase.java:190) 
    at org.springframework.data.neo4j.support.MappingInfrastructureFactoryBean.afterPropertiesSet(MappingInfrastructureFactoryBean.java:146) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1545) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483) 
    ... 47 more 

其中就我个人来说,应该是没有问题的default value是100 SDN文档并不说话too much了。有什么建议么?

谢谢大家提前。

回答

4

看起来像版本兼容性问题。对我来说,下面结合工作正常

spring-data-neo4j : 2.1.0.RC4 
spring-data-mongodb : 1.1.0.RELEASE 
neo4j-server : 1.8 
static-web : 1.8 

而且,我using-

Spring framework version : 3.1.2.RELEASE 
Neo4j version : 1.8 
mongodb version : 2.2.2 
mongo-java-driver : 2.9.1 
slf4j : 1.7.2 
+1

降级到的Neo4j服务器1.8版和解决一些多SL4J绑定的问题解决了这个问题,谢谢! – jarandaf 2013-04-09 15:55:18

+0

顺便说一下,接口已经准备好在http:// localhost:7474下,但不在http:// :7474下。任何线索?它是我希望能够访问的同一个专用网络中的Neo4j盒子。 – jarandaf 2013-04-09 18:25:53

+0

好吧,通过实现这个类http://components.neo4j.org/neo4j-server/1.8/apidocs/org/neo4j/server/configuration/Configurator.html并将它作为第二个参数传递给服务器包装来解决它。更多细节在这里:http://www.cakesolutions.net/teamblogs/2012/05/23/enabling-neo4j-web-admin-tool-on-the-embedded-server-using-spring-data/ – jarandaf 2013-04-09 20:45:28

相关问题