如何创建自定义"未找到行动" Play Framework 2.4(Java)上的页面

时间:2015-12-15 10:43:19

标签: java error-handling playframework playframework-2.4

目前,如果我在我的播放框架应用程序上访问未定义的路径,则默认"未找到操作页面"出现。 我试图制作自定义"未找到行动页面"为了不在浏览器上显示系统信息。

我检查了页面。

https://www.playframework.com/documentation/2.4.x/JavaErrorHandling

我实现了以下代码。

package controllers;

import play.Logger;
import play.http.HttpErrorHandler;
import play.mvc.*;
import play.mvc.Http.*;
import play.libs.F.*;
import views.html.*;

public class ErrorHandler implements HttpErrorHandler {
    public Promise<Result> onClientError(RequestHeader request, int statusCode, String message) {
        Logger.debug("onClientError");
        return Promise.<Result> pure(
                Results.badRequest(error.render())
        );
    }

    public Promise<Result> onServerError(RequestHeader request, Throwable exception) {
        Logger.debug("onServerError");
        return Promise.<Result> pure(
                Results.internalServerError("A server error occurred: " + exception.getMessage())
        );
    }
}

但是,没有显示error.scala.html,默认情况下&#34;未找到操作页面&#34;出现。 Logger.debug也没有被召唤。

我为Scala找到了同样的问题,但没有任何答案。

How to handle "Action not found" with Dependency Injection Play framework 2.4

你可以给我任何建议吗?

1 个答案:

答案 0 :(得分:3)

我自己解决了这个问题! 我注意到我应该将ErrorHandler.java添加到默认包中或添加到另一个包并将其类路径写入application.conf,如下所示。

play.http.errorHandler = "com.example.ErrorHandler"

感谢您的支持!