Spring Boot + npm + Geb で入力フォームを作ってテストする ( その72 )( Windows で本番稼働させるためのディレクトリ作成、jar ファイル配置、bat ファイル作成、サービス登録、動作確認 )
概要
記事一覧はこちらです。
参照したサイト・書籍
目次
- application-product.properties に valueshelper.classpath.prefix の設定を追加する
- Windows で本番稼働させるためのディレクトリを作成する
- bat ファイルを作成する
- jar ファイルを作成、配置する
- nssm をダウンロード・配置し、Windows のサービスに登録する
- 動作確認
- Windows のサービスから削除する
- 次回は。。。
手順
application-product.properties に valueshelper.classpath.prefix の設定を追加する
ksbysample.webapp.bootnpmgeb.values.ValuesHelper クラスで使用する valueshelper.classpath.prefix の設定を記述するのを忘れていたので追加します。
src/main/resources/application-product.properties の以下の点を変更します。
.......... spring.mail.host=localhost spring.mail.port=25 valueshelper.classpath.prefix=BOOT-INF.classes.
valueshelper.classpath.prefix=BOOT-INF.classes.
を追加します。
Windows で本番稼働させるためのディレクトリを作成する
実行環境は以下のディレクトリ構成にします。ファイルは後から配置する ( ログファイルは後から作成される ) ので、まずは全てのディレクトリを作成します。
C:\webapps\boot-npm-geb-sample ├ bat │ └ webapp_startup.bat ├ lib │ └ boot-npm-geb-sample-1.0.1-RELEASE.jar ├ logs │ ├ gc.log │ ├ boot-npm-geb-sample.log │ └ slow-query.log ├ nssm │ └ nssm.exe └ work
bat ファイルを作成する
C:\webapps\boot-npm-geb-sample\bat の下に webapp_startup.bat を新規作成し、以下の内容を記述します。
@echo on setlocal set JAVA_HOME=C:\Java\jdk1.8.0_172 set PATH=%JAVA_HOME%\bin;%PATH% set WEBAPP_HOME=C:\webapps\boot-npm-geb-sample set WEBAPP_JAR=boot-npm-geb-sample-1.0.1-RELEASE.jar set LOGS_DIR=%WEBAPP_HOME%\logs set PATH_HEAPDUMPFILE=%LOGS_DIR%\heapdump.hprof set PATH_ERRORFILE=%LOGS_DIR%\hs_err.log cd /d %WEBAPP_HOME% java -server ^ -Xms1024m -Xmx1024m ^ -XX:MaxMetaspaceSize=384m ^ -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled ^ -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=75 ^ -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark ^ -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps ^ -Xloggc:%WEBAPP_HOME%/logs/gc.log ^ -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10M ^ -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%PATH_HEAPDUMPFILE% ^ -XX:+CrashOnOutOfMemoryError ^ -XX:ErrorFile=%PATH_ERRORFILE% ^ -Dfile.encoding=UTF-8 ^ -Djava.net.preferIPv4Stack=true ^ -Dsun.net.inetaddr.ttl=100 ^ -Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP ^ -Dcom.sun.management.jmxremote ^ -Dcom.sun.management.jmxremote.port=7900 ^ -Dcom.sun.management.jmxremote.ssl=false ^ -Dcom.sun.management.jmxremote.authenticate=false ^ -Dspring.profiles.active=product ^ -jar lib\%WEBAPP_JAR% set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2% set HHMMSS=%time:~0,8% set HHMMSS=%HHMMSS::=% set HHMMSS=%HHMMSS: =% if exist %PATH_HEAPDUMPFILE% rename %PATH_HEAPDUMPFILE% heapdump_%YYYYMMDD%%HHMMSS%.hprof if exist %PATH_ERRORFILE% rename %PATH_ERRORFILE% hs_err_%YYYYMMDD%%HHMMSS%.log
jar ファイルを作成、配置する
clean タスク → Rebuild Project → build タスクを実行します。build/libs の下に boot-npm-geb-sample-1.0.1-RELEASE.jar を作成されますので、C:\webapps\boot-npm-geb-sample\lib の下にコピーします。
nssm をダウンロード・配置し、Windows のサービスに登録する
https://nssm.cc/download のページ内の「Latest release」の「nssm 2.24」リンクをクリックして nssm-2.24.zip をダウンロードします。
nssm-2.24.zip を解凍します。解凍して作成された nssm-2.24\win64 ( 32bit環境の場合には nssm-2.24\win32 ) ディレクトリの下にある nssm.exe を C:\webapps\boot-npm-geb-sample\nssm の下に配置します。
コマンドプロンプトを「管理者として実行...」モードで起動し、以下のコマンドを実行します。
> cd /d C:\webapps\boot-npm-geb-sample\nssm > nssm install boot-npm-geb-sample
「NSSM service installer」画面が表示されます。以下の画像の値を入力した後、「Install service」ボタンをクリックします。サービスの登録に成功すると「Service "ksbysample-webapp-lending" installed successfully!」のダイアログが表示されますので「OK」ボタンをクリックします。
動作確認
最初にメールを送信できるようにするため smtp4dev を起動します。
サービス画面を開きます。サービス一覧から「boot-npm-geb-sample」を選択し、「サービスの開始」リンクをクリックしてサービスを開始します。
C:\webapps\boot-npm-geb-sample\logs の下の boot-npm-geb-sample.log をエディタで開き、最後に "Started Application in ..." のログが出力されていることを確認します。
以下の手順で動作確認します ( 画面キャプチャは省略します )。
- ブラウザを起動して http://localhost:8080/inquiry/input/01/ にアクセスして入力画面1を表示します。
- 入力画面1~3に入力して確認画面を表示します。
- 確認画面から「修正する」ボタンをクリックして入力画面1~3に戻り、入力したデータが表示されること、データを修正して確認画面に戻った場合には修正したデータが反映されることを確認します。
- 確認画面で「送信する」ボタンをクリックして、メールが送信されること、及び完了画面が表示されることを確認します。
Windows のサービスから削除する
サービスを削除します。管理者モードで起動しているコマンドプロンプトから以下のコマンドを実行します。
> nssm remove boot-npm-geb-sample
「Remove the service?」のダイアログが表示されますので、「はい」ボタンをクリックします。サービスが削除されると「Service "boot-npm-geb-sample" removed successfully!」のダイアログが表示されますので「OK」ボタンをクリックします。
次回は。。。
感想を書いた後、この Web アプリを Spring Boot 2 へバージョンアップして、終わりにする予定です。
履歴
2018/07/29
初版発行。