人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Tomcat単体からJBossにサーブレット、JSPを移行しております。
そこで、Tomcatでは出ていない下記問題がでてしまいました。
JBoss上の設定ファイルの問題なのでしょうか。
ご教授お願いいたします。

【問題】
サーブレット中のloadClass(className)メソッドでクラスがNotFoundになる

【状況】
classNameをフルパスで指定すると、エラーがでません

●質問者: maribu
●カテゴリ:コンピュータ
✍キーワード:JBoss JSP Tomcat エラー クラス
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● quintia
●25ポイント

http://www.ytp.ne.jp/tech/java/sineruka/classpath.html

CLASSPATHって?(ytp.ne.jp)

urlはダミーです。

使いたいclassがJDK(or JDSK)本来のものか、自分で書いたものか、他のライブラリに属するものか? と、そのclassファイルをどこに置いているか? が書かれていないと回答しづらいです。

「classNameをフルパスで指定するとエラーがでません」というのはclasspathに直に記述すると、という意味でしょうか?

であればあなたはJBossの設定ファイルについてちゃんと理解しているということですね。

http://www.asahi-net.or.jp/~dp8t-asm/java/tips2/lang/ClassNameCo...

それともclassの名前をパッケージ部分を含めて全部書くとエラーが出ません、という意味でしょうか?

であれば、NotFoundではなくて、JDK,JDSKのバージョンアップに伴ったクラスの増加分や、JBoss自体のライブラリと名前が衝突しているということなのではないでしょうか。

あなたが使いたいclassについて

<%@ page import=”foo.bar.Requred”%>

とか

import foo.bar.Requred;

の様に明にimportを書いて置くのが楽かと思います。

こちらのURLはダミーではありません。

◎質問者からの返答

対象クラスはJSP中の独自のタグから呼んでいる独自のクラスです。

対象クラスは、deploy¥xxxxx.war¥WEB-INF¥classes¥パッケージ名配下に置いてあります。

パッケージ名を全て指定して、loadClassするとエラーになりません。

よろしくお願い致します。


2 ● quintia
●25ポイント

http://java-house.jp/ml/archive/j-h-b/004905.html

なかなか回答が付かない様ですので推測だけお話しします。

loadClassしている方とloadClassされる方が同じパッケージに属していると思いこんでいるだけで、その2つは実は別のClassLoaderにより読み込まれていると推測します。

ClassLoader は、システム(VM)により近いものから、自分で生成するURLClassLoaderまで、階層構造を成していているわけです。

AというClassLoaderでロードされたfoo.Barと、AというClassLoaderでロードされたfoo.Bazとは一見同じfooパッケージに属している様に見えて、実は違うfooパッケージだったりするのです。

loadClassされる方のClassLoaderが、loadClassしている側よりも上の階層に位置しているとこんなことも起こりうるのではないかなぁ、と思った次第です。

loadClassする方のstatic{} 初期化子で確認してみるといいのかも。

static{

ClassLoader a = this.class.getClassLoader();

ClassLoader b =

loadClass(cname).getClassLoader();

System.out.println(a.toString());

System.out.println(b.toString());

//とか、

while ((a=a.getParent()) != null) {

if (a.equals(b)) {

System.out.println(”aはbの下の階層だった”);

}

}

}

自分では試していないソースですのであしからず。

◎質問者からの返答

ありがとうございます。勉強になりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ