1

这是我构建的带有 Spring Data Neo4j 骨架应用程序的 PlayFramework:

https://github.com/tomasmuller/playframework-neo4j-template

在第一次play run一切正常。通过 Netty 的 PlayFramework 以开发模式启动。所以我们可以继续编程并点击刷新来查看结果。

但可能缺少一些与 Neo4j 事务管理器相关的配置。甚至这可能与 PlayFramework 的开发模式有关。

例如,尝试将第 13 行更改index.scala.html为不同的标题,并在不重新启动服务器的情况下重新加载索引页面。

结果是以下异常:

play.api.PlayException:无法初始化全局对象 [null]
...
原因:org.springframework.beans.factory.BeanCreationException:创建名为“graphDatabaseService”的bean时出错:bean实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 bean 类 [org.neo4j.kernel.EmbeddedGraphDatabase]:构造函数抛出异常;嵌套异常是 java.lang.RuntimeException: org.neo4j.kernel.lifecycle.LifecycleException: 组件 'org.neo4j.kernel.StoreLockerLifecycleAdapter@20346642' 已成功初始化,但无法启动。请参阅附件原因异常。
...
原因:org.neo4j.kernel.StoreLockException: Unable to get lock on store lock file: target/neo4j-db/store_lock
在 org.neo4j.kernel.StoreLocker.checkLock(StoreLocker.java:90) ~[neo4j-kernel-1.9.RC1.jar:1.9.RC1]
...

我尝试了一些配置(没有成功)并记录在存储库问题 n.1中。

到底是怎么回事?是配置问题还是与 Spring Data Neo4j 和 PlayFramework 的结合有关?

4

2 回答 2

1

“无法获得锁定”听起来像是文件系统问题(检查目标/neo4j-db/ 目录的权限等?),也许其中有两个创建?

于 2013-05-18T22:59:56.853 回答
0

getGraphDatabaseService.shutdown()在方法中从 Neo4jTemplate调用app/Global.scala onStop解决了这个问题。

/**
 * 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()
}

拉请求在这里

于 2013-08-07T12:22:34.373 回答