Playframework play framework 2.1.5 onHandlerNotFound不工作
我的play framework 2.1.5在重写HandlerNotFound和onError上的全局设置时遇到问题Playframework play framework 2.1.5 onHandlerNotFound不工作,playframework,playframework-2.0,Playframework,Playframework 2.0,我的play framework 2.1.5在重写HandlerNotFound和onError上的全局设置时遇到问题 public class Global extends GlobalSettings { public Result onHandlerNotFound(RequestHeader request){ return play.mvc.Results.notFound("request" + request.uri());
public class Global extends GlobalSettings {
public Result onHandlerNotFound(RequestHeader request){
return play.mvc.Results.notFound("request" + request.uri());
}
public Result onError(RequestHeader request, Throwable t) {
return play.mvc.Results.internalServerError(
"---onError---"
);
}
}
我访问一个不存在的url,它显示播放原始错误页面,但不调用onHandlerNotFound方法。此外,我在其他控制器代码中创建了一个错误,例如
try {
temp = null;
temp.success = true;
} catch (Exception e) {
logger.error("Error occurred", e);
}
它显示原始页面,但没有调用方法onError(RequestHeader请求,Throwable t)
我不知道为什么,我照这张票上说的做了:
有人能解释一下吗?我从你的链接复制了下面的代码,我猜你忘了把
@Override
。因为这会告诉应用程序您要覆盖默认的onHandlerNotFound,所以onError也是如此
@Override
public Result onHandlerNotFound(RequestHeader request) {
return Results.notFound(
views.html.pageNotFound(request.uri())
);
}
@Override
public Result onError(RequestHeader request, Throwable t) {
return internalServerError(
views.html.errorPage(t)
);
}
您好,但是GlobalSettings不是抽象类或接口,我如何重写该方法?顺便说一句,当我使用@Override时,IDE会说“类型为Global的方法onError(RequestHeader request,Throwable t)必须重写或实现一个aupertype方法”,我无法编译代码。@user3231931这在Play 2.2中对我有效,但我刚刚升级到Play 2.3.8,现在我无法在GlobalSettings中重写OneError,因此它抛出了一个错误。