2015-12-15 55 views
2

目前,如果我訪問我的play framework應用程序上的未定義路徑,將會出現默認的「Action Not Found頁面」。 我試圖製作自定義「未找到操作頁面」以便不在瀏覽器上顯示系統信息。如何在Play Framework 2.4(Java)上創建自定義的「未找到動作」頁面

我檢查了頁面。

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未顯示,並且顯示默認的「Action Not Found頁面」。 Logger.debug也未被調用。

我對Scala發現了同樣的問題,但沒有任何答案。

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

能給我什麼建議嗎?

回答

3

我自己解決了這個問題! 我注意到我應該將ErrorHandler.java添加到默認包或添加到另一個包並將其類路徑寫入application.conf中。

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

感謝您的支持!

相關問題