玩框架2.1.5 onHandlerNotFound不起作用

时间:2014-07-08 02:49:33

标签: playframework playframework-2.0

我的播放框架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方法。
enter image description here

而且,我在其他控制器代码中创建了一个错误,例如

   try {
        temp = null;
        temp.success = true;
    } catch (Exception e) {
        logger.error("Error occurred", e);
    }

它显示原始页面,但没有调用方法onError(RequestHeader request,Throwable t) enter image description here

我不知道为什么,我做了这张票所说的话: http://www.playframework.com/documentation/2.1.1/JavaGlobal

有人能解释一下吗?

1 个答案:

答案 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)
  );
}