【问题标题】:Problems with Play's routing file after migrating to 2.4迁移到 2.4 后 Play 的路由文件出现问题
【发布时间】:2016-05-09 18:23:25
【问题描述】:

我将我的 java play 框架应用程序迁移到 play 2.4 并且在更改路由器时遇到了问题。我收到此错误消息:

[NullPointerException: null]
In /home/apps/kikstar/target/scala-2.11/routes/main/router/Routes.scala:957

954    // @LINE:77
955    case controllers_Application_login35_route(params) =>
956      call { 
957        controllers_Application_login35_invoker.call(Application_1.login())
958      }
959  
960    // @LINE:80
961    case controllers_Application_javascriptRoutes36_route(params) =>
962      call { 

路由器中的线路是这样的:

POST        /login                            controllers.Application.login()

和前端的调用

@(rootForm: Form[Root])

  @helper.form(action = routes.Application.login(), 'id -> "userform") {
    @helper.inputText(rootForm("username"))
    @helper.inputPassword(rootForm("pass"))
    <input type="submit" value="Login">
  }

以及Application中的方法

public Result login() {
    Form<Root> filledForm = rootForm.bindFromRequest();
    Root created = filledForm.get();
    Logger.info(created.username + " " + created.pass);
    ...
}

所有其他路线都在工作。这是唯一通过表单助手调用的路由。

【问题讨论】:

    标签: java scala playframework playframework-2.0


    【解决方案1】:

    啊,尽管我很喜欢 Play,但我不喜欢这样的东西,而且它们通常会在迁移等之后出现。我不确定原因,是IDE还是SBT。我相信调用sbt clean compile 应该可以解决问题或清除IDE 缓存(如果有的话)。我假设您通过 Migration guide

    【讨论】:

    • 不应该使用activator run 命令自动完成吗?
    • 我不认为它调用clean作为完整编译通常很昂贵,但我很少直接使用Activator。我相信它倾向于尽可能地使用增量编译,这可能是一个 sbt 事情,因为它是 Activator 的基础。清理和重新编译整个程序可以修复应用程序,这并非闻所未闻。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多