Jettyで動作させているアプリケーションで突然リソースファイルなどが読み込めなくなる

公開しているIRCbot Consoleが、長時間実行していたのちに、突然動かなくなるといったコメントをいただいたので、ちょっと調べてみました。

現象としては、war内に含まれていたリソースファイルなどが、途中からまったく読み込めなくなってエラーとなるといった現象でした。 どうやら、Jettyが展開したwarの内容が、途中で消えてしまっているようです。

ということで、どこに配置されるんだと調べたところ、指定がなかったり、そのディレクトリ自体が無かった場合に、/tmp を作業ディレクトリとして使用するようです。そのため、一定時間で /tmp をクリーンするような設定となっていると、今回のような問題にぶつかるようです。

似たような問題に遭遇している方もいらっしゃいました。

今回は実行したディレクトリ配下にworkディレクトリを追加することにより、work配下に吐き出されることを確認しています。