今日の目標
Play Flameworkを触ってみる
使ったもの
- TypeSafe Activator 1.3.7
- Windows 8.1
参考
Play Frameworkとは
Play Framework(プレイ・フレームワーク)は、ScalaとJava言語で書かれたオープンソースのWebアプリケーションフレームワークである。Model View Controller (MVC) アーキテクチャを採用しており、設定より規約やホットリローディング、エラーのブラウザ上への表示といった方針により、開発者の生産性を上げることを目的としている。
初版は2007年。最近まであまり聞いたことがなかったので新しいものなのかな、と思ってましたが、意外と古かったことに驚き。
ではスタート
準備
まず、TypeSafe Activatorが必要だということなので、zipを落として任意の場所に展開しましょ
う(使ったもの参照)。
展開したActivatorがあるディレクトリを環境変数に設定します。
PATH=【Activatorを展開した場所(activator.bat等があるフォルダを指定する)】
テンプレートでアプリケーションを作成する
まずはコマンドプロンプトでテンプレートを使ってアプリケーションを作成します。
> activator new my-first-app play-java
次に、作ったフォルダ内に移ってActivatorのUIを起動してみます。UIからでなくてもアプリケーションの起動等はできるようですが、せっかくUIあるので使ってみようかと。
> cd my-first-app
> activator ui
Listeningが表示され、8888ポートで受け付けますよーと出てます。案内の通り、localhost:8888
にアクセスします。
きたきた~!
灰色のスペースにRunと書かれているボタンっぽいのが見えると思います。これを押すと、アプリケーションが起動します。
そしてhttp://localhost:9000
のボタンをポチリと押すと、アプリケーションがブラウザに表示される、と!
表示された!
Eclipseプロジェクトに変換する
Eclipseを主に使っているので、Eclipseプロジェクトに作成したアプリケーションを変換してみたいと思います。
まずは、Activatorの左メニューからCode
を選択します。すると、右側にBrowse your app’s code
というのが出てきてますね。その下に、ボタンが2つ並んでおり、Create Eclipse project
とCreate IntelliJ project
があります。Eclipseを使う場合は、もちろんCreate Eclipse project
を選択します。
するとBuild tasksがたくさん走り、最後がSuccessfully created Eclipse~
と出たら完了です。フォルダの中を見てみると、.project
等おなじみのファイルが作られていますね。
Eclipseを開いて、ファイル->インポート->既存プロジェクトをワークスペースへ
を選択します。
少し修正してみる
本当に気持ち程度Eclipseで修正します。
okの中を変えただけです。
アクションは play.mvc.Result 型の値を返し、これはクライアントへ送信される HTTP レスポンスを表しています。上記の例では、ok は コンテントタイプ text/plain のレスポンスボディを含む、ステータス 200 OK のレスポンスを生成します。(Playframeworkガイド)
okの意味は200 okの意味なんですね。ほかにもFotFoundとかinternalServerErrorとか、Webアプリでたまに見かけるエラーのレスポンスが設定できるみたいです。
ちなみにファイルの内容が変わるとActivatorのコンパイルが走ります。(嫌な人はActivatorのBuildメニューにあるCompile on file change
をoffにしてください)
こんな感じでした。
エラーにつまずくと、何が起きているのかがわからないので不便。中で何を使っているのか、何してるのかくらいは知っておいたほうが良さそうだなあ、と思いました。(でもActivatorの中とか把握できそうにないから困る)
Playframeworkはガイドが充実してますね。日本語ガイドあるのは幸せ。
そして、いろいろ動かしているとメモリ4GBの私のPCさんだと結構辛いな…と思った本日でした。Eclipseが固まる固まる…。Playframeworkはメモリとの戦いだった。
本日のエラー
最初、テンプレートでアプリケーション新規作成する手順をUIでやっていたのですが、うまくいかなかったので晒しときます。
アプリの新規作成(activator new)をせずに、> activator ui
を実行。
テンプレートからHello Play Framework(Java Only)
を選択。
作成場所を選択して、完了ボタンをポチリ。しばらく待っていると…
Failed to load sbt configuration
と出てます。
左メニューからBuild
を選択してログを見てみると、Build.sbtでなぜかエラーが出てます。
この原因がわからないまま。とりあえずコマンドプロンプト上でアプリケーションを作成し、それをUIで管理するという方法に切り替えました。