たちまち。

即席で役に立つこと。

【eBuilder】大文字と小文字の違いでNoClassDefFoundErrorになる

intra-mart(iAP)の起動時にNoClassDefFoundErrorが発生して起動しない。

ログを見るとwrong nameと言われており、指定クラス名と実際のクラス名が異なるようだ。よく見ると、大文字と小文字が異なっている。

そこで、この間違っている方のクラス名を使っている箇所をeBuilderやResin上でGrepしてみる…が、ヒットしない。むむ…?

原因と解決策

こういったケースの原因は、「誤った名称のクラスが既にresin側に存在する」ということ。

つまり、resin側の WEB-INF/classes の配下に誤った名称のクラスファイルが存在している筈である。

これを削除して再度クラスファイルを生成(eBuilder上でプロジェクトをクリーン)してやれば、解消する。

SVN更新などによってファイルが書き換えられ、クラス名の大文字小文字だけが修正された場合に発生するようだ。