Webアプリでエラーが発生した際の対処法について
14.1 Webアプリでエラーが発生した際の対処法について
本テキストの各課題を実施している際に、様々な原因でエラーが発生し、想定通り画面が動かないことがあるかと思います。どうしても直らない場合は講師に質問して解決するべきですが、ある程度は自分でエラーの原因を推測できるようになると、作業効率が格段に上がりますので、まずエラーが起きたらこのトラブルシューティングを参照してみるようにしましょう。
本節ではエラーの種類とその見分け方について説明します。
14.1.1 エラーの種類について
Webアプリケーションを実行した際のエラーは主に以下の5種類です。
まず今表示されているエラー画面がどれに近いのかを確認しましょう
①サイトにアクセスができない
図 14.1.1 localhostで接続が拒否されている(Tomcatが起動できていない)
②404エラー(画面遷移先のURLが見つからない)
図 14.1.2 404エラーメッセージ
③405エラー(データ送信方法が揃っていない)
図 14.1.3 405エラーメッセージ
④500エラー(例外が発生した)
図 14.1.4 500エラーメッセージ
⑤それ以外のエラー(そもそも画面遷移しない等)
このうち、①に関してはTomcatが起動していないだけですので、Tomcatを起動させてから改めて対象のURLにアクセスしてみてください。「実行」ボタンからの起動で上手くいかない時は、プロジェクト内のサーブレットに書いた@WebServletアノテーションについて、URLパターンの先頭に「/」がきちんと書かれているか、重複しているURLパターンがないかを確認してください。1つでも不備があるURLパターンがあるとTomcatの起動に失敗します。
図 14.1.5 @WebServletに不備がある例
また、もし今回取り扱うプロジェクトが別のプロジェクトをコピーして名前変更(リファクタリング)したものの場合は、このコンテキスト・パスが修正後の名前になっていない可能性があります。この場合、2箇所を修正する必要があります。コンテキスト・パスがうまく紐づいていないと、その時に追加・修正したウェブページだけでなく、対象のプロジェクトで扱える全てのURLが全て使えなくなってしまいます。
①プロジェクト名を右クリックし、「プロパティー」→「webプロジェクトの設定」を選択し、コンテキスト名をプロジェクト名と同じ文字列に揃えてください。
図 14.1.6 コンテキスト名の修正
②プロジェクト・エクスプローラーの一番上にあるServersフォルダ内にある「Tomcat10_Java17-config」フォルダを開き、server.xmlを開きます。
source属性の末尾がそのプロジェクト名になっているContextタグを探して、そのタグの中に書かれている「docBase」属性と「path」属性の値を、プロジェクト名に合わせて修正してください。
図 14.1.7 server.xmlの修正
path属性だけでもアクセス可能になりますが、URLバーに表示されるコンテキスト名がコピー元と同じままになるので、今どのプロジェクトを触っているかわかりやすいように、docBase属性も直すことをお勧めします。
確認して修正してもそれでも上手く起動しない時は、一度Eclipseを再起動してから、Tomcatの起動をやり直してみてください。
他の②~⑤に関しては、次ページのエラー診断チャートを元に対象の手順を確認してみてください。
もし、それぞれの対処法を試しても解決しない場合は、すぐに講師に質問してください。
図 14.1.8 エラー診断チャート