无法解析IntelliJ中的反向路由方法

Con*_*der 15 java intellij-idea playframework-2.0

我正在关注其中一个play框架教程,但每当我尝试使用反向路由时,我都会遇到编译错误.首先,

public static Result javascriptRoutes() {
    response().setContentType("text/javascript");
    return ok(
        Routes.javascriptRouter("jsRoutes",
            controllers.routes.javascript.Projects.add(),
            controllers.routes.javascript.Projects.delete(),
            controllers.routes.javascript.Projects.rename(),
            controllers.routes.javascript.Projects.addGroup()
        )
    );
}
Run Code Online (Sandbox Code Playgroud)

在intelliJ中显示的错误是'无法解析方法javascriptRouter(java.lang.String,?,?,?,?)'

而且在单元测试中:

@Test
public void notAuthenticated() {
    Result result = callAction(
            controllers.routes.ref.Application.index(),
            fakeRequest()
    );
    assertEquals(303, status(result));
    assertEquals("/login", header("Location", result));
}
Run Code Online (Sandbox Code Playgroud)

它无法解析索引方法.

这是smartJ的问题,还是我在游戏中遗漏了什么?

对于第一部分,这是我的路线文件中的条目:

GET     /assets/javascripts/routes  controllers.Application.javascriptRoutes()
Run Code Online (Sandbox Code Playgroud)

我的控制器Projects已经定义了方法.

dar*_*ose 37

文件 - > 项目结构

在右窗格中选择来源

添加源文件夹

目标/阶-XXX/classes_managed

目标/阶-XXX/src_managed /主


小智 22

我遇到了同样的问题,在这里找到了解决方案:https://github.com/playframework/Play20/issues/969

简而言之:

  • 创建目录javascriptref在控制器包下
  • 运行activator compile,现在Intellij应该得到它 //以前是'play compile'
  • 如果你仍然有错误尝试activator idea再次运行//曾经是'play compile'*


use*_*144 6

从@Markus Kittig提供的链接中拉出.很棒的临时修复.https://github.com/playframework/playframework/issues/1784#issuecomment-26345523

概要:添加target/scala-XXX作为托管源,并删除文件 - >项目结构 - >模块 - >源中的应用程序控制器和视图源标志.然后重新编译.

适用于IntelliJ Ultimate 12.1.{4 | 6}.使用命令行界面创建播放应用程序并使用生成项目文件play idea.二手Play 2.2.0.