FreeBSD 9.2のpackagesでインストールしたTomcat7を使うと、WARファイルのdeployには成功し、正常に動作するのに、WARが$CATALINA_BASE/webapps/に展開されなかった。
筆者は昔からTomcatを使用しており、conf/server.xmlにunpackWARs="true"と書いてあれば、WARは実行時にwebapps/に展開されるものだと思っていたが、そうならなかったのである。
Webで調べてみると、Tomcat7はappBaseの外にあるWARをappBaseに展開しないと書いてあるページを見つけた。
しかし、FreeBSD 9.3のpkgngでインストールしたTomcat7では、全く同じ設定で、WARがwebapps/に展開されていたので、納得できなかった。
何が違うのだろうと思って、設定ファイルやログをいくら調べても、Tomcatのバージョンは、FreeBSD 9.2のpackagesのは7.0.40、FreeBSD 9.3のpkgngのは7.0.54と僅かに異なる以外には違いは見つけられなかった。
まさかマイナーバージョンが違うくらいで根本的な動作が変わることは無いだろうと思っていたのだが、念の為探してみると、7.0.12〜7.0.47の間のバージョンだけ、Tomcatの仕様がそのように変わっていたことがわかった。
意図してそのように仕様変更したが、不満が続出して元に戻したようだ。
こういう変遷は仕方ないことだが、もう少し情報を探しやすくしてもらえないものか。FAQのページにでも書いておいてもらいたいものだ。
今回、"Tomcat7 unpackWARs true but not unpacked"等でWeb検索して、試行錯誤も含めて数時間かけて相当な数のページを読みまくったのだが、この情報には至らず、"7.0.40"というバージョン番号を含めて検索してみてやっと、たまたまそのバージョンでこの問題に遭遇した人が報告したRed Hat Bugzillaにて答えを見つけた。もしこの人が7.0.40でなく前後のバージョンで報告していれば、筆者はさらに数時間無駄にしただろう。
コメント