swelldesign

Webデザイン HTML Javascript Jqueryなどに関する解決策をメモとして紹介するブログです。

playframework2.3.9が動くまで

spring bootを利用して開発を進めていましたがRestControllerでvalidationをかけようとすると色々と工夫が必要になってきてイマイチな感じがして、もっと簡単に出来るようなフレームワークはないものかと探していたところ、playframeworkに出会いました。

  1. Javaフレームワークである*1
  2. 最新のWebアプリに対応しているはず
  3. 生産性が高いはず

などの理由で使ってみることにしました。

  1. HTMLを出来るだけ使いたい*2
  2. RDBへの問い合わせはSQLでしたい*3
  3. AWSを利用したい

が、できるのかは分かりませんが、まずは使ってみるとします。

環境

OS:windows8

JDK:1.7

IDEeclipse

インストール

https://www.playframework.com/download

からダウンロード後「C:\activator-1.3.5-minimal」に展開し下記のパスを設定
展開場所は適宜修正して下記のパスを合わせてください

set path=C:\Program Files\Java\jdk1.7.0_75\bin;%path%
set path=%path%;C:\activator-1.3.5-minimal

実に簡単!

Javaプロジェクトを新規に作成

 $ activator new my-project play-java

とコマンドをうつと、「my-project」というJavaプロジェクトが作成されます。

だだし、そのままだと2015/5/26にリリースされた最新のPlay2.4 がインストールされJDK1.8以降のみでしか動かないため、JDK1.7の当社ではPlay2.3.9に対応するために以下のような編集をしました。

my-project\project\plugins.sbt

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.9")

my-project\build.sbt

// routesGenerator := InjectedRoutesGenerator

my-project\conf\routes

GET     /                           @controllers.Application.index()

これが分かるまでは意外に苦労した。。

アプリケーション起動

$ cd my-project
$ activator run

を実行するとすごく待たされて起動する(最初だけ)ので、以下のURLにて動くことを確認できたら成功です!

http://localhost:9000/

Eclipseの設定

IDEなんか使わなくても、、なんて謳い文句を見たような気もしますが、デバックも使いたいので使い慣れたIDEを使いたいものです。Eclipseを愛用しているのでEclipseの設定方法を記載しておきます。

念のため、Eclipseのインストールから。。

https://eclipse.org/downloads/
ダウンロード後「C:\eclipse」に展開

(日本語化)
http://mergedoc.osdn.jp/ ダウンロード後「plugins」「features」を「C:\eclipse」に上書きし以下を編集します。
eclipse.ini

-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

※最終行

(JavaVmの指定)
eclipse.ini

-vm
C:\Program Files\Java\jdk1.7.0_75\bin\javaw.exe

※-vmargsの上

(おまけ)
eclipse.ini

-Xms1024m
-Xmx1024m

でもって、作ったプロジェクトをEclipseに対応させるには以下のコマンドを打つだけ!

$ cd my-project
$ activator eclipse

デバック方法

activator -jvm-debug 9999 run

とplayframeworkを起動したら、あとはeclipse側で「Remote Java Application」のポートを「9999」にしデバックを実行すれば、いつも通りのデバックが行えます。

これで、ひとまず準備はOKです!
次回はリクエスト周りを触ってみたいと思います。

J.K

*1:Scalaにシフトしつつあるようなので、そのうち。。

*2:デザイナーとの分業をしたい

*3:複雑なSQLを利用したい