DaoMapperの定義に含まれる値が無いと怒られwarがデプロイできない

事象

Tomcatに他のシステムで動いていたWARをデプロイしたら、以下の様なエラーが発生した。

Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for hoge.dao.hogeDaoMapper.Select
        at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:1031)
        at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:821)
        at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:814)
(以下略)

catalina.outを確認すると、以下の様なエラーメッセージが出力されていた。

情報 [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployWAR Webアプリケーションアーカイブ [/opt/tomcat/webapps/hoge.war] を配備します
重大 [Catalina-utility-1] org.apache.catalina.startup.ContextConfig.beforeStart コンテキスト [/hoge] の docBase を修復中に例外が発生しました。
        java.io.IOException: ファイル[/opt/tomcat/webapps/hoge/META-INF/war-tracker]を作成できません。
            at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:180)
            at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:615)

原因

WARの中にwar-trackerというファイルが含まれていたため。
他のシステムから移行する際、WARを持ってきたのではなく、デプロイしたファイルをWAR化して持っていった。
そのため、稼働中のファイルにwar-trackerが含まれていたのでエラーになった。
なお、DaoMapperの定義に含まれる値が無いからwarがデプロイできないのではなく、
WARがデプロイできないからDaoMapperの定義を記述したXMLが参照できなくて怒られていた。

対応方法

WAR化する前に META-INF/war-tracker ファイルを削除してから再度WAR化すればよい。