PlayFramework2.3から従来のplayコマンドではなくactivatorコマンドに変更となりました。それに伴いデバッグ方法も変わってしまったので、以下に書き留めておきます
環境
- Windows8.1
- eclipse 4.3
- scala2.11
- jdk1.7
設定
%UserProfile%\.activator\activatorconfig.txtにファイルを作成します。通常ですと、
c:\users\username\.activator\activatorconfig.txt
になるかと思います
このファイルに以下を記述します。addressはデバッグ用のポートなので開いているポートならばなんでも構いません。
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
実行
プロジェクトのフォルダにコマンドラインからアクセスし、activatorで起動します。8000番ポートでデバッグ用にポートが開いているのがわかります
Z:\test_project>activator Listening for transport dt_socket at address: 8000 [info] Loading project definition from Z:\workspace\qrapp_api\project [info] Set current project to qrapp_api (in build file:/Z:/workspace/qrapp_api/) [qrapp_api] $ run --- (Running the application from SBT, auto-reloading is enabled) --- SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/C:/Users/utsubo/.ivy2/cache/ch.qos.logback/lo gback-classic/jars/logback-classic-1.1.1.jar!/org/slf4j/impl/StaticLoggerBinder. class] SLF4J: Found binding in [jar:file:/C:/Users/utsubo/.ivy2/cache/org.slf4j/slf4j-n op/jars/slf4j-nop-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorSta ticBinder] [info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000 (Server started, use Ctrl+D to stop and go back to the console...)
次にEclipseからプロジェクトを右クリックし、DebugConfigurationからRemoteJavaApplicationをダブルクリックします。ポート番号8000を確認しScalaDebugger(SocketAttach)を選択。起動します。ブラウザを開いてアプリケーションにアクセスすれば、ブレークポイントでデバッグ可能となります。
設定はこの辺りに詳しく書いています
http://stackoverflow.com/questions/19473941/cant-debug-with-typesafe-activator