JavaGlobal onHandlerNotFound(RequestHeader请求)在play framework java中不工作

JavaGlobal onHandlerNotFound(RequestHeader请求)在play framework java中不工作,java,request,http-status-code-404,playframework-2.2,Java,Request,Http Status Code 404,Playframework 2.2,我正在使用Play2.2.1并尝试实现404请求的页面 为此,我在视图中创建了errorPage.scala.html,并在MyProject->app->controller Global.java() 导入播放。*; 导入play.mvc.*; 导入play.mvc.Http.*; 导入play.libs.F.*; 导入静态play.mvc.Results.*; 公共类全局扩展全局设置{ 公共承诺onHandlerNotFound(请求头请求){ 返回承诺。纯(未找到)( views.htm

我正在使用Play2.2.1并尝试实现404请求的页面

为此,我在视图中创建了errorPage.scala.html,并在MyProject->app->controller

Global.java()

导入播放。*;
导入play.mvc.*;
导入play.mvc.Http.*;
导入play.libs.F.*;
导入静态play.mvc.Results.*;
公共类全局扩展全局设置{
公共承诺onHandlerNotFound(请求头请求){
返回承诺。纯(未找到)(
views.html.errorPage.render(request.uri())
));
}
}
但它不起作用。当我输入错误的url时,它会显示“未找到操作”页面,并在浏览器中显示我的路由文件

我有什么遗漏吗

我也尝试了其他的堆栈,但没有得到任何解决方案


谢谢

您的全局类需要位于根包中,即位于
应用程序
中,而不是位于
控制器
包中。您在第二句中发布的文档链接:

在项目中定义全局对象允许您处理全局对象 应用程序的设置此对象必须在根包中定义

import play.*;
import play.mvc.*;
import play.mvc.Http.*;
import play.libs.F.*;

import static play.mvc.Results.*;

public class Global extends GlobalSettings {

    public Promise<SimpleResult> onHandlerNotFound(RequestHeader request) {
        return Promise.<SimpleResult>pure(notFound(
                views.html.errorPage.render(request.uri())
        ));
    }

}