追記
実際にserviceから呼ばれるときにはちゃんと動いた。VPSにて確認。
ローカルで確認したい場合は単純に以下のようにすればよかった。
sh myapp.jar
confファイル自体はシンボリックリンクになっていても問題なかった。
まあjarの先頭にフツーにシェルスクリプト書いてあるし、シェルから起動すれば良いということに何故すぐに気付かなかったのか。。
Spring Bootは、デフォルトでjarと同じ場所にある{jarName}.conf
ファイルを読み込んでくれる。
ここからJAVA_OPTS
も渡せるので、コンテキスト名変更の設定を渡そうとしたのだが、上手くいかなかった。
1.3.0
でダメだったので、今の最新安定版の1.5.2
でも試したがダメ。
ちなみに、コンテキスト名はserver.context-path
のキーで変えられる。/
始まりで/
で終わらない文字列を指定すること。 e.g. /myapp
jarNameをmyapp-1.0.0.jar
とした時の、反映させようとしたconfは以下。
JAVA_OPTS="-Dserver.context-path=/myapp"
これが出来ると、VPS上でSpring Bootのjarの場所にconfファイルを置くだけでコンテキスト名が変更出来て便利なのだが。service化はjarにシンボリックリンク貼るだけなので。
上手くいくパターン
当然だが、application.properties
や、起動時に-D
や--
で指定すると問題ない。
server.context-path=/myapp
java -jar -Dserver.context-path=/myapp myapp.jar
java -jar myapp.jar --server.context-path=/myapp
参考