1

私はしばらく 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());
    }

}

最初の 2 つは問題なく動作しますが、3 つ目はエラーを引き起こします。

API エントリは次のとおりです

4

2 に答える 2

0

これは機能します:

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

このページは役に立ちました。なぜAPIが間違っているのか、まだ混乱しています。

これが同様の問題を抱えている人に役立つことを願っています。

于 2013-05-28T16:53:55.037 に答える