找不到 Play(2.6.0) 框架的操作

Action not found for the Play(2.6.0) Framework

我正在使用 Intellij Idea + Play 2.6.0 + com.google.code.play2-maven-plugin 设置开发环境。

  1. 我的controller class HomeController放在下面的结构中(app是源码根)

    app controllers HomeController

密码是:

    package controllers
    import javax.inject._
    import play.api.mvc._

    @Singleton
    class HomeController @Inject()(cc: ControllerComponents) extends AbstractController(cc) {
     def index = Action {
        Ok("Hello,World")
      }

      def count = Action {
        Ok("10")
      }
     }
  1. routers 文件是: GET / controllers.HomeController.index GET /count controllers.HomeController.count

当我运行maven目标:play2:run,服务器启动,当我 访问 http://localhost:9000/ or http://localhost:9000/count,每个表示 Action Not Found for request '/'Action Not Found for request '/count'

您的控制器 class 名称是 HomeController2 但您的路由器指向 controllers.HomeController

选择一个解决方案:)

  • 将路由更改为 HomeController2.countHomeController2.index(在这种情况下,您的控制器源代码没问题)
  • 将您的 class 移动到控制器包(将 包控制器 添加到源代码的顶部)并重命名它到 HomeController(在这种情况下你的路线是正确的)

找出问题,pom.xml应该用<packaging>play2</packaging>

HomeController例子借鉴自https://github.com/play2-maven-plugin/play2-maven-test-projects/tree/master/play26/scala/starter-example

感谢@balage 帮助解决问题。