播放GlobalSettings覆盖不起作用

时间:2013-05-28 16:46:01

标签: java playframework-2.0

我一直在使用onStart方法一段时间没问题,但是当我尝试覆盖onBadRequest时,我收到一个错误:

这是班级:

import models.User;
import play.Application;
import play.GlobalSettings;
import play.Logger;
import play.mvc.Result;
import views.html.error_page;

import static play.mvc.Results.badRequest;


public class Global extends GlobalSettings {

    @Override
    public void onStart(Application app){
        Logger.info("Application started!");
        // Check if the database is empty
        if(User.find.findRowCount()==0){
            Ebean.save((List) Yaml.load("initial-data.yml"));
        }
    }

    @Override
    public void onStop(Application app){
        Logger.info("Application stopped!");
    }

    @Override
    public Result onBadRequest(String uri, String error) {
        Logger.info("Bad Request");
        return badRequest(error_page.render());
    }

}

前两个没问题,但第三个导致错误。

Here是API条目:

2 个答案:

答案 0 :(得分:1)

您使用的是旧API。

以下是Play 2.1.1的API:

http://www.playframework.com/documentation/api/2.1.1/java/play/GlobalSettings.html

  • 在找到某个操作时调用,但请求解析失败。

    Result onBadRequest(Http.RequestHeader request, java.lang.String error)
    
  • 发生异常时调用。

    Result onError(Http.RequestHeader request, java.lang.Throwable t)
    

答案 1 :(得分:0)

这有效:

@Override
public Result onError(Http.RequestHeader request, Throwable t){
    Logger.error("Error thrown: " + t.getMessage());
    return internalServerError(error_page.render());
}

This页面很有用。我仍然困惑为什么API错了。

我希望这有助于解决类似问题的人。