Java 使用Intellij 15创建新播放应用程序时出现控制器问题
我用Intellij 15创建了一个新的播放应用程序。使用的播放版本是2.4.2,所以我在更新后将其更新为2.4.6。我将应用程序控制器更改为Java类,但现在出现以下错误:Java 使用Intellij 15创建新播放应用程序时出现控制器问题,java,scala,intellij-idea,playframework,Java,Scala,Intellij Idea,Playframework,我用Intellij 15创建了一个新的播放应用程序。使用的播放版本是2.4.2,所以我在更新后将其更新为2.4.6。我将应用程序控制器更改为Java类,但现在出现以下错误: Class 'Application' must either be declared abstract or implement abstract method 'RequestTimeout()' in 'Controller' 下面是我的应用程序控制器的外观: package controllers; impor
Class 'Application' must either be declared abstract or implement abstract method 'RequestTimeout()' in 'Controller'
下面是我的应用程序控制器的外观:
package controllers;
import play.api.mvc.Controller;
import play.api.mvc.Result;
public class Application extends Controller {
public Result index() {
return ok(views.html.index("Your new application is ready."));
}
}
我确实将路由生成器(routesGenerator:=InjectedRoutesGenerator
)添加到了我的build.sbt
,正如迁移指南的依赖项注入部分所建议的那样
最后的一些注意事项:
(1) 我将该应用程序创建为Scala Play应用程序,因为当我尝试使用Play框架将其创建为Java应用程序时,IntelliJ没有正确地生成该项目,并且我想无论如何使用sbt
(2) 我注意到Scala应用程序控制器是作为对象而不是类生成的,这表明它仍然使用静态路由;所以我猜这与依赖注入有关,但是除了迁移指南中的步骤之外,我在他们的文档中没有看到任何东西
你知道我遗漏了什么吗?你需要使用play.mvc.Controller
。换句话说,不要使用api
包,因为它们只用于scala项目。只需将代码更改为:
package controllers;
import play.mvc.Controller; // no .api.
import play.mvc.Result; // no .api.
public class Application extends Controller {
public Result index() {
return ok(views.html.index("Your new application is ready."));
}
}
关于你的笔记:
用于创建项目,然后将其导入IDEA
Activator可能会使用DI而不是对象来创建项目,以定义控制器。不管怎么说,迁移应用程序就足够了
谢谢,成功了。谢谢你的提示,我把Activator忘得一干二净了。