Playframework 2.0 错误NullPointerException

Playframework 2.0 错误NullPointerException,playframework-2.0,Playframework 2.0,我创建了一个注册表单,接受上传图像/化身。但是我得到了这个错误:[NullPointerException:null] 当我接受表格时。这是我的密码: ----Register.java---- 公共类寄存器扩展控制器{ 静态表单=表单(Users.class); 公共静态结果空白(){ 返回ok(register.render(form)); } 公共静态结果提交()引发IOException{ Form filledForm=Form.bindFromRequest(); Multipart

我创建了一个注册表单,接受上传图像/化身。但是我得到了这个错误:
[NullPointerException:null]

当我接受表格时。这是我的密码:

----Register.java----

公共类寄存器扩展控制器{
静态表单=表单(Users.class);
公共静态结果空白(){
返回ok(register.render(form));
}
公共静态结果提交()引发IOException{
Form filledForm=Form.bindFromRequest();
MultipartFormData body=request().body().asMultipartFormData();
FilePart picture=body.getFile(“picture”);
如果(图片!=null){
字符串文件名=picture.getFilename();
字符串contentType=picture.getContentType();
File File=picture.getFile();//此行标记错误:NullPointerException
字符串orig=file.getAbsolutePath();
字符串dest=“/home/thangnk/demo/public/upload/”+文件名;
}
//将文件复制到“demo/public/upload/”文件夹中
InputStream in=新文件InputStream(orig);
OutputStream out=新文件OutputStream(dest);
字节[]buf=新字节[1024];
内伦;
而((len=in.read(buf))>0){
out.write(buf,0,len);
}
in.close();
out.close();
}
//检查并接受条件
if(!“true”.equals(filledForm.field(“accept”).value()){
填写表格。拒绝(“接受”,“您必须接受条款和条件”);
}
//检查重复密码
如果(!filledForm.field(“password”).valueOr(“”.isEmpty()){
如果(!filledForm.field(“password”).value或(“”.equals)(filledForm.field(“repeatPassword”).value()){
拒绝(“重复密码”,“密码不匹配”);
}
}
//检查用户名是否有效
如果(!filledForm.hasErrors()){
字符串名称=filledForm.field(“用户名”).value();
Finder find=新的Finder(String.class,Users.class);
List users=find.where().like(“用户名”、“%”+名称+“%””).findList();
if(!(users!=null&&users.isEmpty()){
拒绝(“用户名”,“此用户名已被使用”);
}
}
if(filledForm.hasErrors()){
返回请求(register.render(filledForm));
}
否则{
create(filledForm.get());
返回ok(register_result.render());
}
}
----Users.java----

@实体
公共类用户扩展模型{
@身份证
公共长id;
@约束条件。必需
@NotNull
公共字符串用户名;
@约束条件。必需
@NotNull
@限制。电子邮件
公共字符串电子邮件;
@约束条件。必需
@限制。最小长度(6)
@NotNull
公共字符串密码;
@约束条件。必需
公共字符串路径;
公共用户(){}
公共用户(字符串用户名、字符串电子邮件、字符串密码){
this.username=用户名;
this.email=电子邮件;
this.password=密码;
}
publicstaticfinder=newfinder(Long.class,Users.class);
公共静态列表所有(){
返回新的ArrayList();
}
公共静态void创建(用户){
user.save();
}
}
Register.scala.html

 @helper.form(action = routes.Register.submit()) {
              <h3> Create Account Informations </h3>

       @inputText(
                signupForm("username"), 
                '_label -> "", 
                '_help -> "Please choose a valid username.",
                '_error -> signupForm.globalError,
                'placeholder ->"Username"
            )

       @inputText(
                signupForm("email"), 
                '_label -> "",
                '_help -> "Enter a valid email address.",
                '_error -> signupForm.error("email"),
                'placeholder ->"Email"
            )

       @inputPassword(
                signupForm("password"), 
                '_label -> "",
                '_help -> "A password must be at least 6 characters. ",
                '_error -> signupForm.error("password"),
                'placeholder ->"Password"
            )

       @inputPassword(
                signupForm("repeatPassword"), 
                '_label -> "",
                '_help -> "Please repeat your password again.",
                '_error -> signupForm.error("password"),
                'placeholder ->"Repeat password"
            )

       @inputFile(
                signupForm("picture"), 
                '_label -> "",
                '_help -> "Max size 120x130px",
                '_error -> signupForm.error("picture"),
                'placeholder ->"Upload file"
            )

       <a href="#"><h3>Terms and conditions</h3></a>

       @checkbox(
                signupForm("accept"), 
                '_label -> None, '_text -> "You aggree the Terms and conditions",
                '_showConstraints -> false
            )

        <div class="actions">
            <input type="submit" class="button" value="Register">
            <a href="@routes.Register.blank"><input class="button" type="button" value="Reset"></a>
            <a href="@routes.Application.index"><input class="button" type="button" value="Cancel"></a>
        </div>
}
@helper.form(action=routes.Register.submit()){
创建帐户信息
@输入文本(
注册表格(“用户名”),
“\u标签->”,
“\u help->”请选择有效的用户名。“,
“\u错误->signupForm.globalError,
'占位符->“用户名”
)
@输入文本(
注册表格(“电子邮件”),
“\u标签->”,
“\u help->”输入有效的电子邮件地址。“,
“\u error->signupForm.error(“电子邮件”),
'占位符->“电子邮件”
)
@输入密码(
注册表格(“密码”),
“\u标签->”,
“_help->”密码必须至少包含6个字符。“,
“\u error->signupForm.error(“密码”),
'占位符->“密码”
)
@输入密码(
注册表格(“重复密码”),
“\u标签->”,
“\u help->”请再次重复您的密码。“,
“\u error->signupForm.error(“密码”),
'占位符->“重复密码”
)
@输入文件(
注册表格(“图片”),
“\u标签->”,
“\u帮助->“最大尺寸120x130px”,
'\u error->signupForm.error(“图片”),
'占位符->“上载文件”
)
@复选框(
签署表格(“接受”),
“\u label->None”,\u text->“您可以将条款和条件合并”,
“\u showConstraints->false
)
}
帮我解决它。非常感谢

P/s:如果我删除上传文件,工作正常。

你能包括堆栈跟踪吗?sry我不明白:)你能给我解释一下吗:)你说错误标记在列表中的一行上。我想这意味着您运行了它,抛出了一个异常,并且您从控制台获得了行号。您能否在控制台中显示堆栈跟踪中的其他内容?否则,您如何知道错误在标记行?
@Entity
public class Users extends Model{

    @Id
    public Long id;

    @Constraints.Required
    @NotNull
    public String username;

    @Constraints.Required
    @NotNull
    @Constraints.Email
    public String email;

    @Constraints.Required
    @Constraints.MinLength(6)
    @NotNull
    public String password;

    @Constraints.Required
    public String path;

    public Users(){}

    public Users(String username,String email,String password){
        this.username=username;
        this.email=email;
        this.password=password;
    }

      public static Finder<Long,Users> find = new Finder<Long,Users>(Long.class, Users.class); 


    public static List<Users> all() {
        return new ArrayList<Users>();
      }

    public static void create (Users user){
        user.save();
    }
}
 @helper.form(action = routes.Register.submit()) {
              <h3> Create Account Informations </h3>

       @inputText(
                signupForm("username"), 
                '_label -> "", 
                '_help -> "Please choose a valid username.",
                '_error -> signupForm.globalError,
                'placeholder ->"Username"
            )

       @inputText(
                signupForm("email"), 
                '_label -> "",
                '_help -> "Enter a valid email address.",
                '_error -> signupForm.error("email"),
                'placeholder ->"Email"
            )

       @inputPassword(
                signupForm("password"), 
                '_label -> "",
                '_help -> "A password must be at least 6 characters. ",
                '_error -> signupForm.error("password"),
                'placeholder ->"Password"
            )

       @inputPassword(
                signupForm("repeatPassword"), 
                '_label -> "",
                '_help -> "Please repeat your password again.",
                '_error -> signupForm.error("password"),
                'placeholder ->"Repeat password"
            )

       @inputFile(
                signupForm("picture"), 
                '_label -> "",
                '_help -> "Max size 120x130px",
                '_error -> signupForm.error("picture"),
                'placeholder ->"Upload file"
            )

       <a href="#"><h3>Terms and conditions</h3></a>

       @checkbox(
                signupForm("accept"), 
                '_label -> None, '_text -> "You aggree the Terms and conditions",
                '_showConstraints -> false
            )

        <div class="actions">
            <input type="submit" class="button" value="Register">
            <a href="@routes.Register.blank"><input class="button" type="button" value="Reset"></a>
            <a href="@routes.Application.index"><input class="button" type="button" value="Cancel"></a>
        </div>
}