Playframework 2.0 空对象上的Frombinding:RuntimeException:java.lang.reflect.InvocationTargetException

Playframework 2.0 空对象上的Frombinding:RuntimeException:java.lang.reflect.InvocationTargetException,playframework-2.0,Playframework 2.0,我正在继续学习Play 2.0,我正在制作一个登录表单。基本上与示例项目Zentasks提供的表单相似 我的问题是在数据库中找不到用户时出现的错误消息,错误发生在以下行: Form<Login> loginForm = form(Login.class).bindFromRequest(); 顺便说一句,我使用mySql作为我的数据库。我有一个有效的用户,代码运行得很好 更新日期:2012年4月17日 如果您在Play2.0中遇到奇怪的事情,请仔细调试它。我来自PHP,我尝试过用s

我正在继续学习Play 2.0,我正在制作一个登录表单。基本上与示例项目Zentasks提供的表单相似

我的问题是在数据库中找不到用户时出现的错误消息,错误发生在以下行:

Form<Login> loginForm = form(Login.class).bindFromRequest();
顺便说一句,我使用mySql作为我的数据库。我有一个有效的用户,代码运行得很好

更新日期:2012年4月17日

如果您在Play2.0中遇到奇怪的事情,请仔细调试它。我来自PHP,我尝试过用sysouts进行调试!但这并不好。运行播放调试运行并点击F6,直到您知道哪里出错

在我的例子中,我记录了一些尚未保存在数据库中的内容,事实上它还不存在

这是打字错误吗(静态部分)


如果不是,那可能就是原因。AFAIK表单类必须是POJO。

如果删除关键字static,则会出现编译错误:type Login不是object controllers.Application的成员。顺便说一句:静态也是zentask示例项目中提到的…作为一个试验,您可以将类从Applications类中移出,作为一个公共类移动到它自己的文件中,然后重试吗?记住要更新导入。嗨,Pierre,如果Login.class分开,它仍然不起作用。当我使用我的一个模型类,一个基本的Person类时,它就起作用了。。我不理解这种行为…嗨,阿迪斯,我担心可能还有其他原因。请检查位于的计算机数据库项目,并与您的代码进行比较。您好,我有相同的问题,但我不了解解决方案。
@Entity
public class Person extends Model {

@Constraints.Required
public String password;

@Constraints.Required
public String email;

// -- Queries

public static Model.Finder<String, Person> find = new Model.Finder(String.class, Person.class);

/**
 * Authenticate a User.
 */
public static Person authenticate(String email, String password) {
Logger.info("email: " + email + " and password is:" + password);
    return find.where().eq("email", email).eq("password", password).findUnique();
}

/**
 * Retrieve all users.
 */
public static List<Person> findAll() {
return find.all();
}

// --

}
/**
 * Handle login form submission.
 */
public static Result authenticate() {
play.Logger.info("Entering authenticated method...");

Form<Login> loginForm = form(Login.class).bindFromRequest(); //ERROR OCCURS HERE

if (loginForm.hasErrors()) {
    return badRequest(views.html.login.render(loginForm));
} else {
    session("email", loginForm.get().email);
    return redirect(routes.LandingPage.index());
}
}
public static class Login {

public String email;
public String password;

public String validate() {
    Logger.info("Entering validation in class login... " + email + "   " + password);
    if (Person.authenticate(email, password) == null) {
    return "Invalid user or password";
    }
    return null;
}
}
public static class Login {
}