- PR -

WEB-INF/lib とWEB-INF/classesについて。

1
投稿者投稿内容
it74d
常連さん
会議室デビュー日: 2002/10/01
投稿数: 28
投稿日時: 2004-09-09 15:57
WebLogic7.0を使っているのですが、
jarファイルをWEB-INF/libにいれ、classファイルをWEB-INF/classesに入れてあるのですが、classnodefoundエラーになってしまいます・・・。

クラスパスに追加するとうまくいくのですが、、、
こんな現象になったことある人、いますか??
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-09 17:46
おそらく参照するクラスがロードされているクラスローダが、参照されるクラスがロードされて
いるクラスローダの親になっているんでしょう。

たとえばシステムクラスローダにロードされているクラスからWebアプリケーションローカル
のクラスローダにロードされているクラスのインスタンスを生成しようとすると例外が発生
しますが、そういうことですよね。
it74d
常連さん
会議室デビュー日: 2002/10/01
投稿数: 28
投稿日時: 2004-09-12 18:20
このエラーをなくすには、classpathに追加するしかないんでしょうか。。。
すいません、初心者なんで教えてください。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-09-12 18:35
引用:

jarファイルをWEB-INF/libにいれ、classファイルをWEB-INF/classesに入れてあるのですが、classnodefoundエラーになってしまいます・・・。

クラスパスに追加するとうまくいくのですが、、、


まず、エラーは"java.lang.ClassNotFoundException"でしょうか?
また、「見つからない」と言われているクラスを参照しているコードはどこにありますか?
JSPですか?Servletですか?

WebLogicのクラスパスにクラスを追加すると、それはWebLogicの起動用クラスローダ
(以下、Aとします)でロードされます。ですが、WebアプリケーションのWEB-INF/libや
WEB-INF/classesに入れたクラスは、そのWebアプリケーションのクラスローダ
(Bとします)でロードされます。

で、WebLogicに関して言うと、BはAの子供です。
B内のクラスからはB及びAでロードされたクラスを参照できますが、
A内のクラスからはBでロードされたクラスは参照できません。
1

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