プログラミング

Tomcatを停止状態からなおす方法【鍵はあれでした】

投稿日:2019年7月19日 更新日:

頭を抱える少年
あなた

EclipseのサーバーとしてTomcatを使っているけどうまく起動しない時がある。

対処法が知りたい。

今回はTomcatで停止状態から治らない時の対処法を細かく紹介していきます。

こんな方におすすめ

  • Tomcatの復旧方法がわからない方
  • Tomcatが何回も停止する方

Tomcatの停止状態を回復させる鍵はコンソールです

 

あなた

Tomcatが動かないんですけどどうしたらいいですか

コンソール見てみた?

てんし君

 

結論から言うとTomcatがうまく動かない時はコンソールを確認してみましょう。

コンソールにはエラーがあると 重大 とうまくいっていない段階で表示されます。

その部分を詳しく見ることで原因を探ることができるのです。

 

まとめ

Tomcatがうまく起動しない時はコンソールを確認する。

 

具体例:起動時で失敗していた時

 

今回、僕がうまくTomcatがうまく起動しなかった原因は、コンソールの表示から発見しました。

その表示がこちら

重大:  A  Child Cotainer failed during start [日 5 05 09:47:08 JUST 2019 ]

 

この場合は failed during start  と表示されているので起動時に問題があることがわかります。

このあたりの表記の意味については英語ですが、短く端的に書かれています。

自分で調べてなんとなく意味はわかります。

 

今回は起動に関するエラーでした。

コンパイルエラー(この後詳しく書いています)はなかったのでプロジェクトの起動時に関係しそうなとこを探る流れになります。

もちろん他のエラーもあります。

コンソールに書かれているエラーをみて何の種類のエラーなのか理解しましょう。

 

まとめ

・何のエラーなのかコンソールから認識する

・英語は調べて訳す

 

具体的な解決までの流れ

 

重大:  A  Child Cotainer failed during start [日 5 05 09:47:08 JUST 2019 ]

 

このメッセージは、コンテナ(つまり、WEBアプリ)起動時に問題が出ているため、起動に失敗した、と言う意味です。

ということはプロジェクトのコード上に何かしら問題があるという判断になります。

ただ、コンパイルエラーはなかったので設定に関わるところに問題がありそう、と予想して
アノテーションを中心にコードを1つづつ見ていった、と言う流れです。

そうしたところ、アノテーションにおける本来1つしか使えないはずのサーブレットパスが、異なるサーブレットでも使われてしまっていたというミスでした。

 

まとめ

エラーの内容から該当場所を発見しました。

 

問題箇所を発見する基本的な流れ

 

プログラミングをする中でサーバーやプロジェクトがうまく機能しない時があります。

しかし大抵の場合は、どこかに不具合の理由が表示されています。

プログラムを組む中でうまくいかない時は原因を探すようにしましょう。

 

今回のTomcatの不具合を探す手順は以下です。

ちなみにTomcatのエラーに限らず、開発ツールを使う時はどのようなエラーに対しても同じ手順で不具合を解決できます。

 

・コンパイルエラーから探る

・コンパイルエラーに表示されない場合はコンソールから問題を探る

・コンパイルエラーにもコンソールにも表示されないエラーの場合は一回プロジェクトをクリーンしてみる

 

コンパイルエラーが出ている場合は問題解決は簡単

 

コンパイルエラーはソースコード上に文法上のエラーがある場合発生します。


コンパイルエラーが起きたときはeclipse上で問題箇所に赤いバツが付きます。

そして、クラスファイルにも赤いバツが付加されるのでどのソースコードでコンパイルエラーが出ているかはそれで判断ができます。

コンパイルエラーが発生しているとプロジェクトエクスプローラでもどのソースコードで問題が出ているのかわかるようになっています。

例としてHTMLの編集でわざとエラーを起こしてコンパイルエラーを表示させてみました。

 

コンパイルエラー画面
コンパイルエラー画面(プロジェクトエクスプローラ)

また、マーカータブにもエラーの詳細が表示されます

コンパイルエラー(マーカー部分)

コンパイルエラーに表示されないエラーの代表例

 

あなた

コンパイルエラーとして表示されてないのにうまくいきません。

どこにエラーの原因があるのですか?

 

実はコンパイルエラーに表示されないエラーも存在します。

そのような例が

 

・実行時エラー

・データベースへのアクセスエラー

・文字列を数値に変換する際に数値に変換出来ない文字列を指定した場合のエラー

 

です。

ちなみに今回のTomcatのエラーは「実行時エラー」でした。

それでは各エラーの具体的な内容とエラーが起きる原因を紹介していきます。

 

①実行時エラー

 

実行時エラーは特に文法としては間違っていないのですが、実行した際に実行出来なくて例外が発生するものです。


例としては

 

・設定に関わるコードミス(アノテーションなど)

・データベースにアクセスする際にパスワードが違っていてログイン出来ない

 

などがあります。


後者の場合はプログラムの文法は間違っていないので、実際にデータベースへのログインが実行されるまでパスワードが違うのかが分かりません。

 

文字列を数値に変換する際に数値に変換出来ない文字列を指定した場合のエラー

 

文字列を数値に変換する際に数値に変換出来ない文字列を指定した場合もそうですね。
次のコードはエラーが発生しないケースです。

 

String s = "123";
int num = Integer.parseInt(s);




この場合は ”123” が 123 に変換されます。
次が実行時エラーのケースです。

 

String s = "abc";
int num = Integer.parseInt(s);




この場合は ”abc” は数値に変換出来ないので例外が発生しまいます。

 

どうしても不具合が治らないときはプロジェクトのクリーンを試そう

 

自分がプログラムのミスしていなくても正常に動かない時があります。

エラーの原因がわからず、表記もされていない場合は一回プロジェクト自体のクリーンを試してみましょう。

また、まだ例外が発生する場合は良いのですが、エラーが発生せず自分の思い通りに実行されないケースがあります。


この場合はどこに原因があるのかの判断が難しくなります。


実際の動いている処理から何故思い通りに動かないのかをコードから判断する必要があります。

この辺りは慣れも必要ですので詳しい人に聞きながら地道にエラーを探しましょう。

 

今回はTomcatが停止状態からなおらない時の対処法を紹介していきました。

エラーを見つけて、解決する作業はTomcatに限らず、プログラミングにおいてとても重要なことなのでこの機会にしっかり定着させておくといいと思います。

 

その他プログラミングに関する情報

2021年最新プログラミングスクール おすすめランキング 【WEBエンジニアになりたい方向け】と書かれた画像
【無料あり】プログラミングスクールおすすめランキング【WEBエンジニアになりたい方向け】

 

続きを見る

プログラミングをしている男性
プログラミングとは何なのか?始め方は?これから学習を始めるあなたにわかりやすく解説

  てんし君   あなたプログラミングを勉強していいことあるの?   もちろんあります。あなたプログラミングを勉強し始めようか迷っているのですが、いくつか質問してもいいでしょうか? &nbs ...

続きを見る

プログラミング独学を無料で成功させる方法【現役エンジニア解説】と書かれた画像
プログラミング独学を無料で成功させる方法【現役エンジニア解説】

  あなたプログラミング独学を無料で成功させる難易度ってどんなものなのでしょうか? 独学のステップを見る限りけっこうシンプルだし、案外すんなりできちゃう気がしているのですがどうでしょうか? ...

続きを見る

プログラミング独学は何から始めるのが正解?【専門家がガチ解説】と書かれた画像
プログラミング独学は何から始めるのが正解?【専門家がガチ解説】

  あなたプログラミング独学で何から始めたらいいかわかりました。 まずはプログラミング言語を決めたいのですがどのように決めたら良いでしょうか?   さきほどはプログラミング独学で何 ...

続きを見る

プログラミング独学をする方におすすめの勉強法3選【現役のエンジニアも参考にできますよ】と書かれた画像
プログラミング独学をする方におすすめの勉強法3選【現役のエンジニアも参考にできますよ】

  あなたチュートリアル? プログラミング言語の公式サイトで紹介されている「言語の基本操作を実際に動かして体験できるプログラム」です。あなた実際に、どんな感じでプログラミング独学をしてきまし ...

続きを見る

プログラミングの独学はマジでキツイからやめておいたほうが良い話【経験者が本気で語ります】と書かれた画像
プログラミングの独学はマジでキツイからやめておいたほうが良い話【経験者が本気で語ります】

  てんし君   この画面を目の前にしているあなたはプログラミングの独学がキツイか知りたいか、すでに独学をはじめていてキツイと感じてしまっているところでしょう。   先に ...

続きを見る

プログラミングスクールはやめとけという声は聞かなくていい話【普通に通ってOK】と書かれた画像
プログラミングスクールはやめとけという声は聞かなくていい話【普通に通ってOK】

  あなたプログラミングスクールには普通に行ってOKと言いましたよね。ではなぜ逆にプログラミングスクールはやめとけという人がいるんですか?無理やりスクールのことを褒めていませんか?教えて下さ ...

続きを見る

プログラミングスクールで就職できない人の特徴5選【卒業生が実体験をもとに教えます】と書かれた画像
プログラミングスクールで就職できない人の特徴5選【卒業生が実体験をもとに教えます】

  あなたさっそくなんですけどプログラミングスクールに通っても結局就職できない人の特徴を教えてほしいです。   さきに言ってしまうとプログラミングスクールで就職できない人の特徴は5 ...

続きを見る

-プログラミング
-

Copyright© エンジニアてんし君ブログ , 2021 All Rights Reserved.