QA@IT
«質問へ戻る

質問を投稿

Play Framework 2 のデフォルトエラーページのOverrideができない

play framework2.3.6にてWebアプリを作っています。
例外発生時のデフォルトエラーページをカスタマイズしようとし、"app/views/errorpage.scala.html"を作成、以下の内容をGlobal.javaに記述し、例外を発生させてみました。

その結果、自分で用意したエラーページが表示されるのではなく、(おそらく)PlayFramework2デフォルトのエラーページが表示されてしまいます(errorという文字列のみのページ)。

        @Override
        public Promise<Result> onError(RequestHeader request, Throwable t) {
                return Promise.<Result> pure(internalServerError(errorpage.render("fatal error")));
        }

なお、以下の部分を正常系の中に記述してみて実行すると、テンプレートが読み込まれてエラーページが表示されるため、テンプレートがおかしい、などということではなさそうです。

internalServerError(errorpage.render("fatal error")

また、Global.javaに記述した、onStart, onStopは動作しているため、Global.javaそれ自体が読み込まれていない、ということもないようです。

play framework2.3.6にてWebアプリを作っています。
例外発生時のデフォルトエラーページをカスタマイズしようとし、"app/views/errorpage.scala.html"を作成、以下の内容をGlobal.javaに記述し、例外を発生させてみました。

その結果、自分で用意したエラーページが表示されるのではなく、(おそらく)PlayFramework2デフォルトのエラーページが表示されてしまいます(errorという文字列のみのページ)。

``` Java
        @Override
        public Promise<Result> onError(RequestHeader request, Throwable t) {
                return Promise.<Result> pure(internalServerError(errorpage.render("fatal error")));
        }
```
なお、以下の部分を正常系の中に記述してみて実行すると、テンプレートが読み込まれてエラーページが表示されるため、テンプレートがおかしい、などということではなさそうです。
```Java
internalServerError(errorpage.render("fatal error")
```
また、Global.javaに記述した、onStart, onStopは動作しているため、Global.javaそれ自体が読み込まれていない、ということもないようです。