我的播放框架2.1.5在覆盖GlobalSettings onHandlerNotFound和onError
时遇到问题 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 request,Throwable t)
我不知道为什么,我做了这张票所说的话: http://www.playframework.com/documentation/2.1.1/JavaGlobal
有人能解释一下吗?
答案 0 :(得分:1)
我从链接中复制了下面的代码,我的猜测是你忘了放@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)
);
}