Scala Play framework onHandlerNotFound方法
我正在使用Play framework 2.1.1,当我试图添加一个全局对象来处理某些情况(如BadRequest、HandlerNotFound等)时,我遇到了一个奇怪的错误: 下面是my Global.scala的外观:Scala Play framework onHandlerNotFound方法,scala,global,playframework-2.1,Scala,Global,Playframework 2.1,我正在使用Play framework 2.1.1,当我试图添加一个全局对象来处理某些情况(如BadRequest、HandlerNotFound等)时,我遇到了一个奇怪的错误: 下面是my Global.scala的外观: object Global extends GlobalSettings { override def onStart(app: Application) { Logger.info("Application has started") } over
object Global extends GlobalSettings {
override def onStart(app: Application) {
Logger.info("Application has started")
}
override def onStop(app: Application) {
Logger.info("Application shutdown...")
}
override def onHandlerNotFound(request: RequestHeader): Result = {
NotFound(
views.html.common.notFoundPage(request.path)
)
}
}
以下是我启动应用程序时看到的内容:
overriding method onHandlerNotFound in trait GlobalSettings of type (request: play.api.mvc.RequestHeader)scala.concurrent.Future[play.api.mvc.SimpleResult]; method onHandlerNotFound has incompatible type
它实际上在编译时失败,并抛出上面的错误。这背后的原因是什么?我很困惑,我的IntelliJ没有显示任何错误 您确定在构建项目时使用的是Play Framework 2.1吗 在
GlobalSettings
中确实定义了:
def onHandlerNotFound(request: RequestHeader): Result
文件内容如下:
也许您在IntelliJ和构建脚本中配置了不同的版本
对于2.2版本,您可以编写:
override def onHandlerNotFound(request: RequestHeader): Future[SimpleResult] = {
Future.successful(NotFound(
views.html.common.notFoundPage(request.path)
))
}
override def onHandlerNotFound(request: RequestHeader): Future[SimpleResult] = {
Future.successful(NotFound(
views.html.common.notFoundPage(request.path)
))
}