[Seasar-user:17027] Re: 特定環境下でNoClassDefFoundError:AbstractInterceptor発生

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2009年 3月 4日 (水) 00:00:26 JST


小林 (koichik) です.

Date:    Tue, 3 Mar 2009 22:04:31 +0900
From:    T Tsukada <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:17026] Re: 特定環境下でNoClassDefFoundError:AbstractInterceptor発生

> 他の環境(RHEL4)でも再現しました。

それならそれなりの原因がありそうですね.

> ディレクトリのタイムスタンプが関係していると思い、さらに簡単に
> touch WEB-INF/lib
> をしてから、再起動すると、発生しなくなりました。違いはlibの
> タイムスタンプのみです。
> とりあえずこれで乗り切れそうです。
> 
> クラスローダの仕組みが分かっていないのですが、ディレクトリの
> タイムスタンプで読み込み順などがあるのでしょうか?
> (Windows環境では全く起きませんが)。

Unix/Linux ではディレクトリエントリの一覧の並びは
アルファベット順になるとは限りません.
が,ディレクトリに touch するだけで並び順が変わるとも
思えませんが.
ともあれ (JW),Tomcat の起動ログにクラスパスの一覧が
出力されるので,それを確認すればライブラリの並び順を
確認できます.

再現する場合としない場合でどのようにクラスパスが
変わっているか確認してみてください.

もっとも,ライブラリの並び順が影響するとしたら
同じ FQN のクラスが複数あるとか,同じ名前の
リソースが複数ある場合に,どのライブラリに
含まれるものが使われるかという違いになり,
NoClassDefFoundError になるとは考えにくいですが.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内