我的Play Framework曾经工作,直到我重建项目。然后我收到此错误。
我的问题正是这篇文章中描述的问题。
这是另一篇文章中的首要答案。
默认情况下,Play 2.4会生成一个依赖注入的路由器,这与 以前,当它使用静态路由器时。您有两个选项,请删除 来自build.sbt的routesGenerator行,所以play将生成一个静态的 路由器,或者(更好地(使控制器类而不是对象, 并使用依赖注入。
这对我也不起作用。没有路由生成器线路构建.sbt。HomeController 已经是一个类。
build.sbt
name := """BookStoreApp"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava)
scalaVersion := "2.12.2"
libraryDependencies += guice
// Test Database
libraryDependencies += "com.h2database" % "h2" % "1.4.194"
// Testing libraries for dealing with CompletionStage...
libraryDependencies += "org.assertj" % "assertj-core" % "3.6.2" % Test
libraryDependencies += "org.awaitility" % "awaitility" % "2.0.0" % Test
// Make verbose tests
testOptions in Test := Seq(Tests.Argument(TestFrameworks.JUnit, "-a", "-v"))
家用控制器
package controllers;
import play.mvc.*;
import views.html.*;
public class HomeController extends Controller {
public Result startGame() {
return ok(gameView.render());
}
public Result statsPage(){
return ok(statsView.render());
}
}
没有路由生成器线路构建.sbt。HomeController 已经是一个类。
因此,您需要将该行添加到build.sbt
routesGenerator := InjectedRoutesGenerator
此行是 2.5 的默认值(可以省略(,但在 2.4 中,如果要使用 DI 控制器,则必须在 built.sbt
中。
你想要,因为你写public Result startGame()
但public static Result startGame()