9929


先ほど、突如ステージング環境の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のアクセスログに

[code]

    http://リクエストURL 404
    
[/code]

と出る以外、エラーログは一切ありません。

どなたかこのような現象に心当たりのあるかたはいらっしゃいませんか？


CC BY-SA 3.0
2015-04-30T11:19:36.590
9697
2015-05-08T06:09:15.467
2015-05-08T06:09:15.467
7214
8396
question
java sastruts tomcat
突然のStrutsアプリケーション404エラー


Tomcatへの配置と、削除の方法をお聞かせください。

  * 古いアプリケーションは削除またはTomcatのwebappsから退避されましたか。
  * 新しいアプリケーションは、war形式のファイル配置をしましたか
  * warファイルで既存のwarを上書き配置をしましたか
  * 配置時に何かエラーは出ていませんか

配置時に何らかのエラーが出ている場合は、TomcatはそのwarファイルないしはWebアプリケーションは、Webアプリケーションと認識しません。  
ただし /WEB-INFに含まれていないファイルは認識できます。

ステージング環境での作業とのことですので、おそらくTomcatの作業手順もあると思いますが、以下のことを確認してください。

  * Tomcatのserver.xmlに搭載したWebアプリケーションの記述はありますか。

具体的には以下の要素です。appnameはwarファイルの名前で、この要素はTomcatが自動的に生成/削除しますので、もしなかった場合はTomcatがWebアプリケーションとして認識していない状態です。

[code]

    <Context docBase="appname" path="/appname" ..... />
    
[/code]

なお、Tomcat起動中にwarファイルを上書きしてWebアプリケーションを更新する方法は"ホットデプロイ"と呼ばれていますが、これを繰り返すとアプリケーションによってはOutOfMemoryErrorが発生し、一部のアプリケーションが停止する状態に陥ります。

ご存知でしたら大変失礼をいたしますが念のため以下の手順でも動作しない状態なのかを確認してください。

  * Tomcatを停止する
  * 古いWebアプリケーションならびにwarファイルをTomcatのwebappsから他のディレクトリへ退避する
  * 新しいWebアプリケーションをwar形式で配置する
  * Tomcatを起動する

以上です。


CC BY-SA 3.0
2015-04-30T22:55:04.230
9716
2015-04-30T22:55:04.230
5778
9697
answer


結果的に、解決しました。  
A-pZさんの言う、context.xmlも調べてみましたが、特に異常はなく、他のサーバーでは動作する状態であり、考えあぐねていましたが、gitのログを確認したところ、他の開発者からのコミットで、本番用のクラスパスにいくつかプロパティーファイルが追加されており、ずいぶん前のコミットから、本番機のみ動かなくなる、という現象が発生していたようです。

急いでいたので、具体的にどの部分が影響したのか把握していませんが、プロパティーの内容によっては何もログが出ずWEBアプリケーションとしての起動に失敗するようです。

WEBアプリケーションの仕組みについて、知らなかったことも勉強させていただきました、A-pZさん、ご協力ありがとうございました。


CC BY-SA 3.0
2015-05-08T00:45:20.670
9929
2015-05-08T00:45:20.670
8396
9697
answer