質問: 先ほど、突如ステージング環境のWEBアプリケーションが一部動作しなくなりました。 エラーログは一切ありません。 画面にはHTTPStatus 404 The requested resource is not available. のみです。 動作時点との違いといえば、mavenで、バージョン変更を行ったのと、javascriptを少々いじったこと程度です。 javascriptの動作はローカル(自PC内)では確認しており、 pomのバージョンの互換もこれでもかというほど確認しました。 コンテキストパスにアクセスすると、MainActionが呼び出されるはずですが、chromeのネットワークを確認する限り、MainActionまで行っていないようです。 そのTomcat上で、別のWEBAPPを展開すると、そちらは正常に動作します。 じゃあWEBAPP側に問題があると思いきや、依存ライブラリまで動作時のバージョンに戻しても動作しません。 また、webapps/Application/test.html を作成し、 ip:8080/Application/test.htmlでは正しく表示できたので、アプリケーション自体は動作しています。 先ほども言ったように、404発生時も、 tomcatのアクセスログに ``` http://リクエストURL 404 ``` と出る以外、エラーログは一切ありません。 どなたかこのような現象に心当たりのあるかたはいらっしゃいませんか?
回答: Tomcatへの配置と、削除の方法をお聞かせください。 * 古いアプリケーションは削除またはTomcatのwebappsから退避されましたか。 * 新しいアプリケーションは、war形式のファイル配置をしましたか * warファイルで既存のwarを上書き配置をしましたか * 配置時に何かエラーは出ていませんか 配置時に何らかのエラーが出ている場合は、TomcatはそのwarファイルないしはWebアプリケーションは、Webアプリケーションと認識しません。 ただし /WEB-INFに含まれていないファイルは認識できます。 ステージング環境での作業とのことですので、おそらくTomcatの作業手順もあると思いますが、以下のことを確認してください。 * Tomcatのserver.xmlに搭載したWebアプリケーションの記述はありますか。 具体的には以下の要素です。appnameはwarファイルの名前で、この要素はTomcatが自動的に生成/削除しますので、もしなかった場合はTomcatがWebアプリケーションとして認識していない状態です。 ``` ``` なお、Tomcat起動中にwarファイルを上書きしてWebアプリケーションを更新する方法は"ホットデプロイ"と呼ばれていますが、これを繰り返すとアプリケーションによってはOutOfMemoryErrorが発生し、一部のアプリケーションが停止する状態に陥ります。 ご存知でしたら大変失礼をいたしますが念のため以下の手順でも動作しない状態なのかを確認してください。 * Tomcatを停止する * 古いWebアプリケーションならびにwarファイルをTomcatのwebappsから他のディレクトリへ退避する * 新しいWebアプリケーションをwar形式で配置する * Tomcatを起動する 以上です。