読者です 読者をやめる 読者になる 読者になる

TomcatをWindowsのサービスに追加する時のclasspathとかの設定方法

個人的にはTomcatみたいなのはLinuxサーバで動かすもんでしょ、と思っているのですが、規模や用途によってはわざわざサーバ立てずに、空いてるWindowsを使おう、ということもあります。
さらに、使う時にいちいちTomcatを起動するのが面倒だから、Windowsのサービスとして登録しておき、OS起動時に立ち上がるようにしておいてよ、となるのは自然な話です。

ということで、WindowsのサービスとしてTomcatを登録して起動した所、classpathが読み込まれないようです。
ちなみに私がアプリを作るときは、本番環境のDBの接続先やメールサーバ等の設定ファイルはリポジトリに含めたくないので、設定ファイルをwarに含めず、classpathが通った場所に配置することにしています。


Tomcatをstartup.batから起動する時は、classpathの設定を記述することで問題なく読み込まれます。
ですが、Windowsのサービスとして実行した時は、その情報は読み込まれません。
環境変数CLASSPATHに設定しても、読み込まれていないようです。


さて困りました。


startup.batをサービスとして登録しても良いけど、サービス停止する時は単純にプロセスを切られるんじゃないか?
と思われたので、ちょっと躊躇します。


とは言え、全てのリソース情報をWEB-INF/classesに配置するように構成を変えるのも違う気がします。
TomcatWindowsのサービスとした際に、classpathの設定するにはどうすれば良いか。


[答え]
tomcat7w.exe
を使用します。


f:id:nemuzuka:20140625204901p:plain


JVMのパラメータもここで設定できます。
Tomcatはいつも素のzipしか使ってなかったもので、Windows用のzipがある意味がわかりました。