Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Play 2.3.8:数据源用户是否为空?bindFromRequest()无法正常工作_Java_Html_Eclipse_Scala_Playframework 2.0 - Fatal编程技术网

Java Play 2.3.8:数据源用户是否为空?bindFromRequest()无法正常工作

Java Play 2.3.8:数据源用户是否为空?bindFromRequest()无法正常工作,java,html,eclipse,scala,playframework-2.0,Java,Html,Eclipse,Scala,Playframework 2.0,这周我开始学习游戏。现在,我试图编写一个代码,在用户登录时创建会话。 对不起,这篇文章看起来有点凌乱,因为我是新用户,不允许发布图片 我正在使用JavaPlay2.3.8和Eclipse4.4.1(我已经尝试了我在这里看到的其他技巧) 目前,我总是收到以下错误消息: play.api.Application$$anon$1:执行异常[[RuntimeException:java.lang.reflect.InvocationTargetException]] 在play.api.Applicat

这周我开始学习游戏。现在,我试图编写一个代码,在用户登录时创建会话。 对不起,这篇文章看起来有点凌乱,因为我是新用户,不允许发布图片

我正在使用JavaPlay2.3.8和Eclipse4.4.1(我已经尝试了我在这里看到的其他技巧)

目前,我总是收到以下错误消息:

play.api.Application$$anon$1:执行异常[[RuntimeException:java.lang.reflect.InvocationTargetException]] 在play.api.Application$class.handleError(Application.scala:296)~[play_2.11-2.3.6.jar:2.3.6] 在play.api.DefaultApplication.handleError(Application.scala:402)[play_2.11-2.3.6.jar:2.3.6] 在play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320)[play_2.11-2.3.6.jar:2.3.6] 在play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320)[play_2.11-2.3.6.jar:2.3.6] 在scala.Option.map(Option.scala:145)[scala-library-2.11.1.jar:na] 原因:java.lang.RuntimeException:java.lang.reflect.InvocationTargetException 在play.data.Form.bind(Form.java:394)~[play-java_2.11-2.3.6.jar:2.3.6] play.data.Form.bindFromRequest(Form.java:221)~[play-java_2.11-2.3.6.jar:2.3.6] 在controllers.Application.authenticate(Application.java:70)~[classes/:na] 在路由$$anonfun$Routes$1$$anonfun$applyOrElse$11$$anonfun$apply$11.apply(Routes\u routing.scala:209)~[classes/:na] 在路由$$anonfun$Routes$1$$anonfun$applyOrElse$11$$anonfun$apply$11.apply(Routes\u routing.scala:209)~[classes/:na] 原因:java.lang.reflect.InvocationTargetException:null 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:1.8.0\u 31] 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)~[na:1.8.0\u 31] 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)~[na:1.8.031] 在java.lang.reflect.Method.invoke(Method.java:483)~[na:1.8.0\u 31] 在play.data.Form.bind(Form.java:391)~[play-java_2.11-2.3.6.jar:2.3.6] 原因:java.lang.RuntimeException:数据源用户为空? 在com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.(DataSourcePool.java:204)~[avaje-ebeanorm-3.3.4.jar:na] 在com.avaje.ebeanternal.server.core.DefaultServerFactory.getDataSourceFromConfig(DefaultServerFactory.java:419)~[avaje-ebeanorm-3.3.4.jar:na] 在com.avaje.ebeanternal.server.core.DefaultServerFactory.setDataSource(DefaultServerFactory.java:385)~[avaje-ebeanorm-3.3.4.jar:na] 在com.avaje.ebeanternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:163)~[avaje-ebeanorm-3.3.4.jar:na] 在com.avaje.ebeanternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:125)~[avaje-ebeanorm-3.3.4.jar:na]

这是我的方法,叫做:

public static Result authenticate() {

    Form<Login> loginForm = Form.form(Login.class);

    Login loginUser = loginForm.bindFromRequest().get();


    if (!usersList.getUsers().contains(loginForm)) {
        return ok(login.render("test"));
    } else {
        session().clear();
        session("email", loginForm.get().email);
        System.out.println("ich bin hier");
        return redirect(routes.Application.login());

    }


}
公共静态结果验证(){
Form loginForm=Form.Form(Login.class);
Login loginUser=loginForm.bindFromRequest().get();
如果(!usersList.getUsers().包含(loginForm)){
返回ok(login.render(“test”);
}否则{
session().clear();
会话(“电子邮件”,loginForm.get().email);
系统输出打印(ich bin hier);
返回重定向(routes.Application.login());
}
}
这就是模型(getter和setter也在那里):

公共类登录{
公共登录(){
}
公共字符串电子邮件;
公共字符串密码;
公共登录(字符串电子邮件、字符串密码){
this.email=电子邮件;
this.password=密码;
}
公共字符串验证(){
if(Users.authenticate(电子邮件、密码)==null){
返回“无效用户或密码”;
}
返回null;
}
公共静态查找器find=新查找器(
String.class,Login.class
); 
下面是scala.html文档:

<div class="Login">
   <br>
    <br>
     <br>
      <br>

      <h1>Login</h1>

<form action="@routes.Application.authenticate()" method="post">
 <p><input type="email" name="email" placeholder="Email" value=""></p>
 <p><input type="password" name="password" placeholder="Password" value=""></p>
 <p class="submit"><input type="submit" name="Login" value="Login"></p>
</form>   





登录

最后,但并非最不重要的一点是,我的浏览器中的错误消息表示在第70行中引发了异常:

[运行时异常:java.lang.reflect.InvocationTargetException]

System.out.println(“nach loginform”); 68 69//System.out.println(loginForm.bindFromRequest().toString()); 70 Login Login用户=loginForm.bindFromRequest().get(); 71 72 System.out.println(loginForm.toString()); 73//Form loginForm=Form(Login.class).bindFromRequest(); 74
75如果(!usersList.getUsers()包含(loginForm)){


提前感谢您在这个问题上帮助我

您遗漏了什么吗

@Entity 
public class Login extends Model {
并检查
ebean.default=“models.*”
行在
application.conf中是否未注释

@Entity 
public class Login extends Model {