SnipSnap + MySQL 5.0 メモ 〜設定壊れたよ編〜

先日の日記で、SnipSnap 1.0b2-uttoxeter と MySQL 5.0.15 を組み合わせてセットアップした時の手順をメモした。

www.toyfish.blog

その時は何事もなく終わり、なんとなく File Storage の時より軽い気がして喜んでいた。で、その日はマシンを落として帰宅した。ところが、翌日にマシンを起動して SnipSnap を見ようとすると、404 Not Found になってしまった。サービスの状態を確認すると、TomcatMySQL も立ち上がっている。慌てて原因を調べてみた。

現象

ローカルの Tomcat にインストールした SnipSnap (トップページなら http://localhost:8080/snipsnap/space/start) にブラウザでアクセスすると、Tomcat404 Not Found のエラーページを返す。

原因

SnipSnap のアプリケーションコンテキストが初期化に失敗したため、http://localhost:8080/snipsnap/ 以下が無効になっている。

詳細

SnipSnap では、初回の接続時に初期設定のページが表示される。設定が終わって、"Start SnipSnap" というボタンを押すと、設定が保存され、トップページ (http://localhost:8080/snipsnap/space/start) が表示され、設定が完了したことを確認できる。
……が、この時、管理者でログインして、設定ページを再度開くと、なぜか、データの保存先を入力するページが表示されてしまう (初期設定時の 1 ページと同じ内容)。この状態で保存先を再度設定すると (設定を誤ると?)、設定が正しく保存されなくなるようだ。
その結果、次回起動時に DB へ接続することができず、アプリケーションコンテキストが初期化失敗となる。

回避策

初期設定が終わってトップページが表示されたら、一度 Tomcat を起動しなおす。
以前のデータを DB にインポートしたいといった場合は、この起動しなおしを行った後に行う。