Spring Data Neo4j和PlayFramework 2.1.1的正确配置是什么?
下面是我构建的Spring Data Neo4j骨架应用程序的PlayFramework:
https://github.com/tomasmuller/playframework-neo4j-template
在第一play run
一切正常。 通过Netty的PlayFramework以开发模式启动。 所以我们可以继续编程并刷新以查看结果。
但可能有一些与Neo4j事务管理器相关的缺失配置。 甚至这可能与PlayFramework的开发模式有关。
例如,尝试将index.scala.html
的第13行更改为不同的标题,并重新加载索引页面而不重新启动服务器。
原来以下例外:
play.api.PlayException: Cannot init the Global object[null] ... Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'graphDatabaseService': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.neo4j.kernel.EmbeddedGraphDatabase]: Constructor threw exception; nested exception is java.lang.RuntimeException: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.StoreLockerLifecycleAdapter@20346642' was successfully initialized, but failed to start. Please see attached cause exception. ... Caused by: org.neo4j.kernel.StoreLockException: Unable to obtain lock on store lock file: target/neo4j-db/store_lock at org.neo4j.kernel.StoreLocker.checkLock(StoreLocker.java:90) ~[neo4j-kernel-1.9.RC1.jar:1.9.RC1] ...
我尝试了一些配置(没有成功),并在存储库问题n.1中记录。
到底是怎么回事? 这是一个配置问题,或者与Spring Data Neo4j和PlayFramework的组合有关?
“无法获得锁定”听起来像文件系统问题(检查目标/ neo4j-db / dir的权限等),也许有两个创建?
在app/Global.scala
onStop
方法中从Neo4jTemplate调用getGraphDatabaseService.shutdown()
解决了这个问题。
/**
* Sync the context lifecycle with Play's.
* @param app
*/
override def onStop(app: Application) {
val neo4jTemplate:Neo4jTemplate = ctx.getBean(classOf[Neo4jTemplate]);
neo4jTemplate.getGraphDatabaseService.shutdown();
ctx.stop()
}
请求在这里。
链接地址: http://www.djcxy.com/p/68765.html上一篇: What is the proper configuration for Spring Data Neo4j and PlayFramework 2.1.1?