2016-03-09 32 views
0

当我尝试编译我的游戏框架2.4的项目,我收到此错误:播放框架编译错误:预期}但EOF发现

`}' expected but eof found. 
In /Users/dylhunn/Documents/workspace/my-project/app/controllers/Application.java 

这似乎表明,我却辜负了我的牙套。但是,大括号实际上是正确匹配的,并且即使添加了额外(任意数量)的大括号大括号时,错误仍然存​​在。

我已经尝试过“激活清洁”。

这里是我的Application.java:

package controllers; 

import model.UserAccountManager; 
import play.data.Form; 
import play.libs.Json; 
import play.mvc.*; 
import harmony.core.Harmonizer; 

import play.twirl.api.Content; 
import views.html.*; 

import java.net.URLDecoder; 
import java.util.*; 

import static play.data.Form.form; 

public class Application extends Controller { 

    public Result index() { 
     if (validSessionIsActive()) return harmonizepage(); 
     else return landing(); 
    } 

    public Result about() { 
     Content html = views.html.auxtemplate.render("title", "content"); 
     return ok(html); 
    } 

    public Result contact() { 
     Content html = views.html.auxtemplate.render("title", "content"); 
     return ok(html); 
    } 

    public Result landing() { 
     return ok(views.html.landing.render(form(Credentials.class))); 
    } 

    public Result login(String message) { 
     if (validSessionIsActive()) return index(); 
     if (message == null) message = ""; 
     return ok(views.html.loginpage.render(Form.form(Credentials.class), message)); 
    } 

    public Result logout() { 
     String user = session("user-email"); 
     session().clear(); 
     if (user == null) return login("You were not logged in."); 
     return login("User " + user + " has been logged out."); 
    } 

    public Result harmonizepage() { 
     if (!validSessionIsActive()) return login("Please sign in to acess this page."); 
     return ok(views.html.harmonize.render()); 
    } 

    public Result testRegister() { 
     return ok(views.html.signuppage.render(Form.form(UserData.class)); 
    } 

    public static class Credentials { 
     public String email; 
     public String password; 
    } 

    public static class UserData { 
     public String email; 
     public String password; 
     public String name; 
     public String location; 
     public String birthday; 
    } 

    public Result loginSubmit() { 
     Form<Credentials> loginForm = form(Credentials.class).bindFromRequest(); 
     if (UserAccountManager.userRegistered(loginForm.get().email)) { 
      if (UserAccountManager.authenticate(loginForm.get())) { // success 
       session("user-email", loginForm.get().email); 
       return harmonizepage(); 
      } else { // Incorrect password 
       return login("Incorrect password for that email address."); 
      } 
     } else { // New user 
      session("candidate-email", loginForm.get().email); 
      session("candidate-password", loginForm.get().password); 
      session("registration-in-progress", "true"); 
      return login("Sorry -- signups are still closed!"); 
     } 
    } 

    public Result signupSubmit() { 
     if (!session("registration-in-progress").equals("true")) return login(""); 
     session("registration-in-progress", "false"); 
     Form<UserData> suForm = form(UserData.class).bindFromRequest(); 
     UserData data = suForm.get(); 
     data.email = session("candidate-email"); 
     data.password = session("candidate-password"); 

     UserAccountManager.registerUser(data); 

     return index(); 
    } 

    /** 
    * Checks the session cookie to see if a valid username is stored there. 
    */ 
    public static boolean validSessionIsActive() { 
     String email = session("user-email"); 
     return UserAccountManager.userRegistered(email); 
    } 

    public Result harmonize(String input) { 
     if (!validSessionIsActive()) 
      return badRequest("No user is currently signed in. Try closing and reopening the site"); 
     try { 
      input = URLDecoder.decode(input, "UTF-8"); 
     } catch (Exception e) { 
      return badRequest("The server received an unsupported URL encoding."); 
     } 
     List<String> inputChords = Arrays.asList(input.split(" ")); 
     List<List<String>> result = new ArrayList<>(); 
     String str = ""; 
     for (String s : inputChords) str = str + s + " "; 
     try { 
      result = Harmonizer.harmonize(str); 
     } catch (Exception e) { // Harmonizing failed for some reason 
      return badRequest(e.getMessage()); 
     } 
     return ok(Json.toJson(result)); 
    } 
} 
+0

清理项目并重建它。并且在文件 – mmuzahid

+0

@mmuzahid的末尾添加一个空白换行符。可惜的是,这并不起作用,即使我手动删除“目标”目录。 – dylhunn

回答

2

错误信息是混乱的,但问题是在testRegister方法。 render呼叫未正确关闭。

return ok(views.html.signuppage.render(Form.form(UserData.class)); 

应该

return ok(views.html.signuppage.render(Form.form(UserData.class))); 

错误消息可能是某种东西的Scala弹出。