EclipseでTomcatを使ったWEBアプリケーションの開発をおこなう際、いきなりTomcatが起動しなくなった場合の対処方を紹介します。
今回紹介するのは、Tomcat起動でタイムアウトが発生した場合の対処方法です。
Tomcat起動でタイムアウトした場合は、設定を変更することで事象が解消されることがほとんどです。
EclipseでのTomcat起動時に起動タイムアウトが発生すると、以下のようなメッセージが表示されます。
一概には言えませんが、紹介する2つの方法のどちらかで対処可能なことが多いです。
環境情報
- Eclipse:Luna Service Release2(4.4.2)
- WEBサーバ:Tomcat8.5
タイムアウト値を変更する
まずは、単純にタイムアウト値を変更する方法です。
WEBサーバに配置するアプリケーション自体が大きくなってくれるとTomcatへの展開に時間が掛かってしまい、タイムアウトが発生することがあります。
タイムアウト値の変更方法は以下になります。
まず、Eclipse上のコンソールビューでサーバタブを選択し、「ローカルホストのTomcat v8.0のサーバ」をダブルクリックし、Tomcatの設定ウィンドウをひらきます。
Tomcatの設定ウィンドウにおいて、タイムアウトに関する設定が存在するので、このタイムアウト値を変更することで、Tomcat起動時のタイムアウト値を変更することができます。
割当メモリを変更する
タイムアウト値を長めに変更してもTomcat起動時にタイムアウトの問題が発生する場合は、Tomcatに割り当てられているメモリが少ない事が原因で起動に失敗している可能性があります。
その場合は、メモリの設定を見直してみましょう。
メモリの設定方法は以下になります。
タイムアウト値の変更で使用したTomcatの設定ウィンドウで、一般情報の「起動構成を開く」を選択します。
起動構成プロパティーの編集において、引数タブを押下し、VM引数の設定ウィンドウをひらきます。
VM引数の設定ウィンドウにおいて、末尾に以下の文字列を追加します。
起動時メモリの設定になります。
-Xmx1024M -Xms521M -Djava.awt.headless=true
-Xmx |
ヒープ全体の最大値 |
-Xms |
ヒープ全体の最小値 |
-Djava.awt.headles |
headlessモードの設定 |
一番最後の「-Djava.awt.headless」は、メモリの設定とはちょっと違いますが、trueにしておいた方が無難です。
特にGUI環境が無いLinuxサーバでTomcatを動かす場合、この設定がないとエラーになることがあるようです。
なので、常にtrueを設定しておいた方がいいです。
まとめ
EclipseでのTomcat起動タイムアウトは現認が解り辛いです。
しかし、紹介した2つの方法のいずれかで解決することが多いです。
- タイムアウト値を単純に伸ばそう
- メモリの設定を見直そう