LoginSignup
19
20

More than 5 years have passed since last update.

【Play】PlayFramework 2.2.1 GlobalSettingsの利用の実際【Scala】

Last updated at Posted at 2014-01-19

ポイント

  • 2.1.xとは記載が変わっているので注意

    2.1.xの書き方
    2.2.xの書き方

  • 開発環境ではPlayFrameworkデフォルトのエラーページが表示したい。 本番環境でだけ、GlobalSettingsの設定が生きてほしい←これが重要

本番環境のGlobalSettingsの用意

[project-name]/app/ProductionGlobal.scala

import play.api._
import play.api.mvc._
import play.api.mvc.Results._
import scala.concurrent.Future

/**
 * User: takudo
 * Date: 2014/01/19
 * Time: 22:21
 */
object ProductionGlobal extends GlobalSettings{

  /**
   * エラーページを用意します。
   */
  override def onError(request: RequestHeader, ex: Throwable) = {
    //2.1.x系とは記述が異なるので注意。
    Future.successful(InternalServerError(
      //ビューファイルは適宜自分のところに用意してください。
      views.html.error.error()
    ))
  }

  /**
   * わかり易い例としてnot found ページを用意します。
   */
  override def onHandlerNotFound(request: RequestHeader) = {
    Future.successful(NotFound(
      views.html.error.not_found()
    ))
  }

}

設定ファイルの準備

  • application.confは開発用、本番用などで分ける。

例:application.confは共通設定、dev.confが開発用、prod.confが本番用とする。

[project-name]/conf/application.conf

application.secret="xxxxxxxxxx"

[project-name]/conf/dev.conf

include "application.conf"

hoge.hoge="開発環境特有の設定"

[project-name]/conf/prod.conf

include "application.conf"

hoge.hoge="本番環境特有の設定"

#これが重要
application.global="ProductionGlobal" #グローバルオブジェクトのオブジェクト名を記述する。

起動

開発環境

cd /path/to/project
play debug
> run "-Dconfig.file=conf/dev.conf"

ブラウザで、ルート定義していないURLにアクセスして、 デフォルトのAction not foundページが出る ことを確認する。

本番環境

cd /path/to/project
play clean stage
target/unversal/stage/bin/[project-name] -Dconfig.file=conf/prod.conf

ブラウザで、ルート定義していないURLにアクセスして、 自分の用意したNot foundページが出る ことを確認する。

19
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
20