Spring Boot でメール送信する Web アプリケーションを作る ( その22 )( Windows で本番稼働させるためのディレクトリ作成、jar ファイル配置、bat ファイル作成、サービス登録、動作確認 )
概要
Spring Boot でメール送信する Web アプリケーションを作る ( その21 )( 気になった点を修正2 ) の続きです。
- 今回の手順で確認できるのは以下の内容です。
- Windows で本番稼働させるためのディレクトリ作成、jar ファイル配置、bat ファイル作成、サービス登録、動作確認。
ソフトウェア一覧
参考にしたサイト
手順
Windows で本番稼働させるためのディレクトリ作成
実行環境は以下のディレクトリ構成にします。ファイルは後から配置する ( ログファイルは後から作成される ) ので、まずは全てのディレクトリを作成します。
C:\webapps\ksbysample-webapp-email ├ bat │ └ webapp_startup.bat ├ lib │ └ ksbysample-webapp-email-0.0.1-SNAPSHOT.jar ├ logs │ ├ gc.log │ └ ksbysample-webapp-email.log ├ nssm │ └ nssm.exe └ work
bat ファイル作成
IntelliJ IDEA 上で 1.0.x-productenv ブランチを作成します。
プロジェクトのルート直下に webapps/ksbysample-webapp-email/bat ディレクトリを新規作成します。
webapps/ksbysample-webapp-email/bat の下に webapp_startup.bat を新規作成します。作成後、リンク先の内容 に変更します。
作成した webapp_startup.bat を C:\webapps\ksbysample-webapp-email\bat の下に配置します。
jar ファイル作成、配置
build タスクを実行して jar ファイルを作成します。
C:\project-springboot\ksbysample-webapp-email\build\libs の下に ksbysample-webapp-email-0.0.1-SNAPSHOT.jar が作成されますので、C:\webapps\ksbysample-webapp-email\lib の下に配置します。
nssm のダウンロード、配置、サービス登録
nssm の最新版をダウンロードします。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\ksbysample-webapp-email\nssm の下に配置します。
コマンドプロンプトを「管理者として実行...」モードで起動します。
以下のコマンドを実行します。
> cd /d C:\webapps\ksbysample-webapp-email\nssm
> nssm.exe install ksbysample-webapp-email※nssm.exe のオプション一覧はコマンドプロンプトで "nssm.exe" を何もオプションを付けずに実行すれば表示されます。
「NSSM service installer」画面が表示されます。以下の画像の値を入力した後、「Install service」ボタンをクリックします。サービスの登録に成功すると「Service "ksbysample-webapp-email" installed successfully!」のダイアログが表示されますので「OK」ボタンをクリックします。
- 「Path」に C:\webapps\ksbysample-webapp-email\bat\webapp_startup.bat を入力します。
- 「Startup directory」に C:\webapps\ksbysample-webapp-email\bat を入力します。
動作確認
サービス画面を開きます。サービス一覧から「ksbysample-webapp-email」を選択し、「サービスの開始」リンクをクリックしてサービスを開始します。
C:\webapps\ksbysample-webapp-email\logs の下の ksbysample-webapp-email.log をエディタで開き、最後に "Started Application in ..." のログが出力されていることを確認します。
ブラウザから http://localhost:8080/mailsend にアクセスし、メール送信画面や送信済メール検索画面が動作することを確認します。
サービス画面で「ksbysample-webapp-email」サービスを停止します。
サービス削除
サービスを削除します。管理者モードで起動しているコマンドプロンプトから以下のコマンドを実行します。
> nssm.exe remove ksbysample-webapp-email
「Remove the service?」のダイアログが表示されますので、「はい」ボタンをクリックします。サービスが削除されると「Service "ksbysample-webapp-email" removed successfully!」のダイアログが表示されますので「OK」ボタンをクリックします。
commit、Push、Pull Request、マージ
- commit、GitHub へ Push、1.0.x-productenv -> 1.0.x へ Pull Request、1.0.x でマージ、1.0.x-productenv ブランチを削除、をします。
次回は。。。
目次を作成してここまでの感想を書いて締める予定です。
ソースコード
webapp_startup.bat
@echo on setlocal set JAVA_HOME=C:\Java\jdk1.8.0_45 set PATH=%JAVA_HOME%\bin;%PATH% set WEBAPP_HOME=C:\webapps\ksbysample-webapp-email set WEBAPP_JAR=ksbysample-webapp-email-0.0.1-SNAPSHOT.jar 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=%WEBAPP_HOME%/logs/`date`.hprof ^ -XX:ErrorFile=%WEBAPP_HOME%/logs/hs_err_pid_%p.log ^ -Dsun.net.inetaddr.ttl=100 ^ -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%
- 今回は jconsole で監視できるよう
-Dcom.sun.management.jmxremote
から始まる4つのオプションを追加します ( ただし jconsole で接続する手順は記載しません )。
履歴
2015/06/22
初版発行。