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了。有什么建议么?
谢谢大家提前。
降级到的Neo4j服务器1.8版和解决一些多SL4J绑定的问题解决了这个问题,谢谢! – jarandaf 2013-04-09 15:55:18
顺便说一下,接口已经准备好在http:// localhost:7474下,但不在http://:7474下。任何线索?它是我希望能够访问的同一个专用网络中的Neo4j盒子。 –
jarandaf
2013-04-09 18:25:53
好吧,通过实现这个类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