アプリケーションの開発をしていく上でデバッグ処理は必須です。Eclipseでは任意のソース上でbreak pointを設定して、さまざまな値や動作を確認します。
ここではEclipseを用いてPlayアプリのデバッグを行ってみましょう。まず、Playコンソールをデバッグモードで起動します。デバッグモードで起動するには、「play」コマンドの後に「debug」を指定します。
$play debug Listening for transport dt_socket at address: 9999 //デバッグ用ポートは9999番で起動する : : [gyro] $
こうすることでデバッグ用の接続ポートが9999番で待ち受けられます。ついでに「run」コマンドを実行してPlayアプリを起動しておいてください。
[gyro] $ run --- (Running the application from SBT, auto-reloading is enabled) --- [info] play - Listening for HTTP on port 9000... (Server started, use Ctrl+D to stop and go back to the console...)
次にEclipseでデバッグ処理用にbreak pointを設定しましょう。ほとんど止める個所もないのですが、「app/controllers/Application.scala」の「index」関数で実行を止めるようにします。
break pointを設定したらプロジェクトディレクトリで右クリックし、[Debug As]→[Debug Configurations...]を選択します。
configurations作成用のダイアログボックスが開くので、デバッグ用設定を作成しましょう。ダイアログボックス左上の新規作成ボタンを押して、下記画像のようにHostとPortを指定してDebugボタンを押します。
これでデバッグ用設定は完了です。
configurationsの設定が終わったらWebブラウザでPlayアプリにアクセスしてみます。
「http://localhost:9000/」をWebブラウザで開きましょう。先ほど設定したbreak pointで処理が中断されます。
ステップ操作や変数の内容確認、任意の場所で例外を発生させたりなど、通常のEclipseデバッグ時と操作方法は同じです。
Cotrollerのbreak pointでステップインをしてみました。Play内部のソースも確認しながら、ステップごとに処理を進めていけます。
これならplay内部の処理も確認しながらデバッグできますね。
今回はPlayコンソールの基本的な使い方とEclipseでのデバッグ方法を紹介しました。
Playコンソールはsbtをベースにしています。sbtはとても高機能なビルドツールで、今回紹介した以外にもさまざまな機能を持っています。ドキュメントや参考サイトを見れば、さらに便利な使い方ができると思います。
詳細な解説については、「PlayドキュメントのPlayコンソール」を御覧ください。
なお、SBTについては「はじめるSBT」が基本から非常に詳しく解説しています。併せてご確認ください。
次回は、Play frameworkのコントローラを紹介する予定です。
中村修太(なかむら しゅうた)
クラスメソッド勤務の新しもの好きプログラマです。昨年、東京から山口県に引っ越し、現在はノマドワーカーとして働いています。好きなJazzを聴きながらプログラミングするのが大好きです。
Copyright © ITmedia, Inc. All Rights Reserved.