Apatch+Tomcat+Javaでローカル環境では問題ないのに、別環境だと発生したエラーの対応にすごく悩んだものに遭遇したので、メモ。
なぜかセッション切れが起きる
Apatch+Tomcatでローカル環境では問題ないのに、Linuxサーバだと、なぜかセッションに関わるところで落ちてしまう。
しかも、ブラウザによって挙動が異なってて。
IE、Safariだと問題なし。
Firefoxだと初回立ち上げのとき必ず起きて、2回目以降は問題なし。
GoogleChromeだと毎回起きる……。
なんじゃこりゃ…。
メンバーでしくはくしながらチェック。
ログを見るとリクエストしたときにセッションが連携されていないことがわかりました。
Chromeにあるデベロッパーツール>ネットワークの表示でリクエストやレスポンスを確認していると……。
JSESSIONIDが変わっている!?しかも、favicon.icoのところで!?
対処法
下の記事のタイトル通りなのですが、確認すると、ルートディレクトリにfavicon.icoがありませんでした。
なので、favicon.ico設置したら、解決した。

まじかー。この記事見つけられなかったら、もっと悩んでいた。感謝かんしゃです……!!
おそらく発生していた挙動
おそらく、下の挙動が発生したと思われます。
開発していたJSPにfavicon.icoが設定されていない。
→デフォルトのfavicon.icoを読もうとする。
→ルートディレクトリにfavicon.icoなく、読み取れない。
→Tomcatのエラーページ表示処理が動き、GoogleChrome のみ セッションキー(JSESSIONID)の貼り直し。
→セッションキー(JSESSIONID)が異なる値になってリクエスト。
→セッションに関わる箇所でエラー発生。
そもそもfavicon.icoが読めれば発生しないので、JSPにfavicon.icoの設定があり、データが存在してれば、発生しないんじゃないかな?と思います。
(プロジェクトの状況を追うとアイコンのデザインが決まっていなくて、JSPに設定できていなかった。)
favicon.ico設置したら、Firefoxもエラー発生しなくなったので、Chromeと同じ現象が起きてたのだと思われます。
まとめ
こういうのよくあるのかな?まさかのicoデータが関連するとは思っても見なかった。今後のために、共有しておきますね……!
参考情報

