简体   繁体   English

Spring Data Neo4j:在嵌入式服务器上使用

[英]Spring Data Neo4j: Using the server with an embedded

I'm trying to configure my application context in order to be able to use the Neo4j server with an embedded graph in my app without much success. 我试图配置我的应用程序上下文,以便能够将Neo4j服务器与我的应用程序中的嵌入式图形一起使用,但没有取得太大的成功。 I'm using Spring Data at the same time (both Mongo and Neo4j repositories approach). 我同时使用Spring Data(Mongo和Neo4j存储库方法)。 This is my application-context, which isn't running: 这是我的应用程序上下文,未运行:

<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>

If I don't use this approach and specify simply the store directory (commented line) everything runs fine. 如果我不使用这种方法,只指定商店目录(注释行),则一切运行正常。 I suspect it's a version between SDN and neo4j-server issue. 我怀疑这是SDN和neo4j-server问题之间的版本。 This is my POM: 这是我的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>

Its parent has as a dependency Spring(core,context,test) 3.2.0 Release. 它的父级具有依赖项Spring(core,context,test)3.2.0 Release。

The concrete error being displayed is: 显示的具体错误是:

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

which as far as I am concerned, should be no problem as the default value is 100. The SDN doc does not talk too much about it. 就我而言, 默认值是100应该没有问题。SDN文档对此没有太多讨论。 Any suggestions? 有什么建议么?

Thank you all in advance. 谢谢大家。

Looks like version compatibility issue. 看起来是版本兼容性问题。 For me below combination is working fine 对我来说,下面的组合很好用

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

Further, I am 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM