WildFly SwarmはThrontailに改名したらしい

WildFly Swarm

というのが、なかなか見つからなかったり・・・
やっと見つけたジェネレータでプロジェクトを作って実行させようとすると
mvn thorntail:run
と入力する様になっていたり、
結果が
Hello from Thorntail!
だったり、
何か変だと思ってたら、Throntailに改名していたらしい。
mvn thorntail:runに-Dswarm.debug.port=8000を付ければリモートデバッグできるらしい。
試しにrunしてみるとjava.exeが2つ起動する。
コマンドラインで、CTRL+Cすると

バッチ ジョブを終了しますか (Y/N)?

が表示されるので、(/ω\)イマイチ感が半端ない
ここに落とし穴があった。
もう1回、mvn thorntail:runすると、いっぱいログが流れて失敗する。
よーく探すと、
ERROR [stderr] (main) Caused by: org.jboss.msc.service.StartException in service org.wildfly.undertow.listener.default: Address already in use: bind /0:0:0:0:0:0:0:0:8080
なんてのが混ざっていて、リソースモニターを見ると、java.exeが1つ残っていた!
CTRL+Cしたら、毎回リソースモニターを開いてjavax.exeを止めるか、taskkill /im java.exe /f しないといけない。(難物
でも、うまくリモートデバッグすれば、Eclipseのデバッグビューから【終了】のボタンを押すと、コマンドラインもちゃんと終了する。【切断】しても【再起動】すれば【終了】のボタンを押すと、コマンドラインもちゃんと終了するので、コマンドラインからCtrl+Cで止める時だけ気を付ければいいようだ。
https://docs.thorntail.io/4.0.0-SNAPSHOT/(※賞味期間が長くなさそうな名前)の方のドキュメントに

9. Developer Tools

と云うのがあって、pom.xmlの<dependencyManagement>の中の<dependency>の最後に

<dependency>
<groupId>io.thorntail</groupId>
<artifactId>thorntail-devtools</artifactId>
</dependency>

を付けて、コマンドラインで

> set  THORNTAIL_DEV_MODE=debug
> mvn thorntail:run -Dswarm.debug.port=8000

して、
Listening for transport dt_socket at address: 8000
と出てくるまで待ってから、
Eclipseからデバッグを開始してみる。
すると、デバッグ・ビューにいっぱいプロセスが出てきたら、おもむろに【STOP】。
この沢山あるプロセスの中から、それっぽいプロセスを選択してソースを開いてブレークポイントをセットするのがミソらしい。
そして、【再開】。
でも、どこにでも神様はいるらしい。
pom.xmlの<plugins>の中の<plugin>~</version>の後に
下の赤い文字部分を追加すると、THORNTAIL_DEV_MODE=reload相当の機能が追加されるらしい。

<configuration>
  <mode>thin</mode>
</configuration>

なので、こんなremoteDebug.batを作ってみた。

echo on
echo "java.exe 強制終了"
taskkill /im java.exe /f
taskkill /im java.exe /f
taskkill /im java.exe /f
taskkill /im java.exe /f
taskkill /im java.exe /f
pause "☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"
echo "Throntailリモートデバッグ実行(自動リロード付き)"
rem set THORNTAIL_DEV_MODE=debug
rem set THORNTAIL_DEV_MODE=reload
mvn thorntail:run -Dswarm.debug.port=8000
pause "☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"

これで、java.exeの残骸も気にせずに、Ctrl+Cが押せるし、Eclipseでソースを修正して保存して、ブラウザからデバッグページを開けば新しくなる。
リモートデバッグさまさま。
ついでにブレークポイントを使える様になった。
ブレークポイントでうまく止まらない場合は、ヒマしてるスレッドにあててしまっている可能性が高いので、

  • デバッグビューの【中断】ボタンを押して実行中のスレッドを止める。
  • スレッド(中断中)の左端の「>」を押して停止中のスタックの一番上をクリックし、ソースにブレークポイントを貼りなおして【F8】でGO。
  • ブラウザからデバッグするソースんもURLを開いても、ブレークポイントがスカったら、また【中断】し、一つしたのスレッドにトライ。

ソースを修正する度に、テストが面倒なJUnitっぽいテストについては
先のサイトの最新ドキュメントに方法が書いてあるので、
ビジネス・ロジックあたりのデバッグは支障無いようだ。
 

今回の所感

pom.xmlに
<mode>thin</mode>
を追記すれば解決!(笑顔
でも、こんな書き方では

ドコに入れればいいんだよ?(泣

になってしまった訳で・・・
そんな間の抜けた書き方をするDocumentが
もう少しマシだったら誰も困らないんだろうなぁ・・・
 
とつくづく思った。




コメントを残す

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

CAPTCHA