PlayFramework(Java)で開発環境と本番環境の違いで苦労した

こんにちは。
前回、dafさんがplayframworkでメールを送信してみた!
というタイトルで
PlayFrameworkの記事を書いていたので、
その流れに乗ってPlayFrameworkについて書きたいと思います。
タイトル通り開発環境と本番環境の違いから苦労した点を書きます。

今回の苦労した点は

conf/内のファイルが読め込めない!!

というもの。

やりたいこととしては、
conf/内に何かしらのファイルを置いておいて、
application.confに記述したパスを参照して、Javaで読み込むというもの。
(PlayでJava?という気持ちは内にしまっておいてください。。。)

開発環境で動作させるrunやstartですと問題ないのですが、
本番環境で運用する為のstageやdistをして実行すると読め込めないという状況が起きました。

まずは、

開発環境で動作したコード

このコードで実行すると、
ファイルが見つかりません。

ConfigFactory.load()を利用すると、
デフォルトでapplication.confを読みにいくのですが、
runやstartと違って
stageやdistしたパッケージ内には
conf/が存在していないのでパスが違ってエラーになります!!

ではどうしたものか・・・
色々調べてみると、
便利なものが存在しました!!
play.Application.getFile(String relativePath)

このメソッドはアプリケーションのルートパスからの相対ファイルを取得するというもの。
アプリケーションのルートパスの参照ならconf/も存在するので、
ファイルも取得出来る!!

それでは、

本番環境でも動作したコード

これでファイルを取得出来ました!!
因に、application.confに記述するパスは
conf/path
となります。

これ以外にも開発環境と本番環境では異なってくる箇所があるので、
徐々に書いていきたいと思います。

Usami Go

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です