我在Play 2.0中开发了一个java应用程序,现在我正在尝试将其部署到AWS。我首先尝试以与在本地计算机上相同的方式运行它。我将播放源复制到虚拟EC2服务器(Ubuntu 12.04),导出播放到类路径,并复制我的项目。当我运行play compile时,我收到以下错误
[info] Loading project definition from /home/ubuntu/play-2.0/samples/java/test-crud/project
[info] Set current project to computer-database (in build file:/home/ubuntu/play-2.0/samples/java/test-crud/)
[info] Updating {file:/home/ubuntu/play-2.0/samples/java/test-crud/}computer-database...
[info] Done updating.
[info] Compiling 21 Scala sources and 16 Java sources to /home/ubuntu/play-2.0/samples /java/test-crud/target/scala-2.9.1/classes...
[error] /home/ubuntu/play-2.0/samples/java/test-crud/app/models/Dealership.java:32: not found: type Finder
[error] public static Finder<Long,Dealership> find = new Finder<Long,Dealership>(Long.class, Dealership.class);
[error] ^
[error] one error found
[error] {file:/home/ubuntu/play-2.0/samples/java/test-crud/}computer-database/compile:compile: Compilation failed
[error] Total time: 117 s, completed Apr 21, 2014 3:48:33 AM
该应用程序是基于Ebean的CRUD示例构建的。当我尝试在Play中编译该示例应用程序时,我没有任何麻烦。为什么编译器与Finder有问题?
答案 0 :(得分:8)
偶尔会发生这种情况,有时会编译,有时则不会。
我通过将Finder
更改为更具体的Model.Finder
修复了此问题。
你的行变为:
public static Model.Finder<Long,Dealership> find = new Model.Finder<Long,Dealership>(Long.class, Dealership.class);
答案 1 :(得分:1)
我有同样的问题,编译结果取决于编译的订单文件。我无法部署该应用程序。 我无法解释原因,但我解决了在视图中删除finder的问题。
有一个例子,尝试在视图中替换:
index.scala.html
@for(dealer <- Dealership.find.all()) {
...
}
带
@(dealerships: List[Dealership])
...
@for(dealer <- dealerships) {
...
}
并添加到您的控制器中:
public class Dealerships extends Controller {
public Result index() {
return ok (index.render (Dealership.find.all()));
}
}