- PR -

James で BeanUtils が使えない?

1
投稿者投稿内容
アレク
ベテラン
会議室デビュー日: 2002/10/23
投稿数: 97
投稿日時: 2005-01-20 00:58
James 2.1.3 で開発しているアプリケーションで、
Commons-BeanUtils を利用しているのですが、
実行時に NoClassDefFoundError が発生してしまいます。

引用:

java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap
at org.apache.commons.beanutils.BeanUtils.<clinit>(BeanUtils.java:106)



ちゃんと SAR-INF/lib に、beanutils.jar と collections.jar
を入れてあるのですが、うまく見つけてくれないようです。

他の dbcp や pool は SAR-INF/lib に放り込んでおくだけで使えているのに、
BeanUtils が使えないのはどうしてなのでしょうか?

お手数ですが、よろしくお願いいたします。
zaxx_MD
大ベテラン
会議室デビュー日: 2003/04/21
投稿数: 204
お住まい・勤務地: 千葉県柏市
投稿日時: 2005-01-20 01:06
collections.jarのダブルエントリアザーバージョンを疑え。
適用されているクラスパスをログに出力するテストクラスを作れ。

というのはどうでしょうかぁ?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-01-20 01:25
beanutilsがcollectionsよりも上の階層のクラスローダで読み込まれていると言うことはないでしょうか?
システムクラスパスに通っていたり、 jre/lib/ext に配置されていたりしたらそのようなことが発生する可能性があります。
子クラスローダで読みこまれているクラスは参照されないからです。
アレク
ベテラン
会議室デビュー日: 2002/10/23
投稿数: 97
投稿日時: 2005-01-20 02:32
Σ(`д`ノ)ノ ヌオォ!!
ナイスアドバイスありがとうございますぅ〜。

お陰様で、即解決してしまいました。(T▽T)

インギさんのおっしゃる通り、なぜか beanutils.jar が
james-2.1.3/lib の方にも入っていて、それが邪魔していたようです。

そちらの beanutils.jar を取り除くことによって無事問題解決しました。
本当にありがとうございました。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2005-01-20 02:41
なーるほど。解決おめでとうございます。
もし james が collections.jar に依存しているようでしたら(配置されていないと言うことは使っていないのでしょうが)逆に james の lib ディレクトリに collections.jar を配置すればOkです。タブン

commons は機能毎に細かく jar を分けているくせに依存関係があって時々面倒ですね。コンポーネント毎にアップデードできるのはいいですが。
1

スキルアップ/キャリアアップ(JOB@IT)