- ベストアンサー
Javaアプリケーションで動くJDBCがサーブレットで動かない
Javaアプリケーションでは動いていたJDBCのソースをサーブレットの中に組み込むと例外が発生して動きません。 JDBCドライバ(Thinドライバ)をDriverManagerに登録するところ Class.forName("oracle.jdbc.driver.OracleDriver"); でClassNotFoundExceptionが発生します。 何か設定が足りないのでしょうか? どこを確認すべきか教えてください。お願いします。 ちなみに環境は以下の通りです。 ・Windows2000 ・Apache1.3.26 ・Tomcat3.2.4 ・JDK1.3.1_02
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
ふたたびです。 サーバーマシン上のクラスパスにJDBCドライバへのパスがとおっていますか??? クライアントマシン上にクラスパスがとおってるのではないのでしょうか??? もしサーバーマシンにJDBCへのクラスパスがとおっていないのでしたらサーバーマシンにオラクルJDBCをコピペしてクラスパスをとおしてください。そうすることによって解決するとおもいます。 サーバーサイドJAVAは自分がおかれているサーバーの設定をみにいきますので、いくらクライアントマシンの設定をしても反映されません
その他の回答 (7)
- yuji
- ベストアンサー率37% (64/169)
ANo.#5の続きです。 TOMCATのインストールディレクトリ/lib の下にある *.jar ファイルは TOMCAT の起動時に 自動的に CLASSPATH に含められます。 ですから、自分で CLASSPATH を指定する必要は ありません。
お礼
いろいろと回答いただいていたのに、遅くなってすいません。 皆さんのおかげで解決できました。 本当にありがとうございました。
- hidebu-
- ベストアンサー率53% (45/84)
TYPE4のJDBCドライバーのようですね。 確認しますがサーバーとクライアントは同じマシン上にあるんですよね?
補足
はい。 TYPE4のJDBCドライバーです。 サーバーは別のところにあります。
- yuji
- ベストアンサー率37% (64/169)
たぶん、ちょっとした設定ミスだとは思うんですが 原因を切り分けやすいように、まずは classes12.zip をclasses12.jarという名前にして TOMCATのインストールディレクトリ/lib/classes12.jar にコピーしてから TOMCATを再起動してみてください。 これでどうなるでしょうか? これでも駄目なら ・ドライバー名を指定しているところのスペルを間違えている ・classes12.zipが壊れている という理由がかんがえられます。
補足
classes12.zip をclasses12.jarという名前にして TOMCATのインストールディレクトリ/lib/classes12.jar にコピーしてから TOMCATを再起動してみてください。 というのは classes12.zipのファイルをclasses12.jarに変えて TOMCATのインストールディレクトリ/lib以下にclasses12.jarを置く と言うことでしょうか? それともCLASSPATHを変更してファイルを置くと言うことなんでしょうか?
- hidebu-
- ベストアンサー率53% (45/84)
環境変数のCLASSPATHはどんな記述になっているんでしょうか? JDBCドライバへのクラスパスだけでなくパスがとおっているクラスパス全てを教えてください。 ちなみに普通のサーブレットは動かすことはできるんですよね?
補足
こんな感じです。 .;C:jdk1.3.1_02\lib;%TOMCAT_HOME%\lib\servlet.jar;C:\oracle\ora90\jdbc\lib\classes12.zip 普通のサーブレットは動きます。
- hidebu-
- ベストアンサー率53% (45/84)
こんにちは 1、JAVAアプリケーションで作成したものは正常にRDBに接続できたのでしょうか? 2、開発ツールは何をつかっているのでしょうか? JBUILDER?FORTE?それとも他のものでしょうか? 3、JDBCドライバは解凍したのちにクラスパスをとおしたのでしょうか?ZIPファイル、もしくはJARファイルのままクラスパスをとおしたのでしょうか? 以上三点をお答えいただければある程度原因がわかるとおもいます
補足
1.正しくSQL文が実行されました。 2.開発ツールは使っていません。 3.先ほどのyujiさんの補足にも書きましたが、普通にシステム環境変数で C:\oracle\ora90\jdbc\lib\classes12.zipにCLASSPATHを通しました。 よろしくお願いします。
- yuji
- ベストアンサー率37% (64/169)
OracleのJDBC Driverをどこに配置していますか? 配置する場所(配置方法)によっては、 CLASSPATHを通す必要があります。 (この場合はTomcat起動時のCLASSPATHに含める必要が あります。)
補足
JDBC Driverってclasses12.zipのファイルですか? それならばC:\oracle\ora90\jdbc\libにあります。 それならば普通にシステム環境変数でCLASSPATHを通しましたが Tomcat起動時のCLASSPATHとは何でしょうか?
- tenro-
- ベストアンサー率32% (23/70)
OracleのJDBCははいっていますか?
補足
Oracle9iのクライアントを入れてあります。
お礼
いろいろと回答をいただいていたのに、反応が遅くなってすいません。 少し他の仕事をしていて、こっちに手をつけられませんでした。 そして、皆さんのおかげで解決しました。 原因はCLASSPATHをtomcatに設定していませんでした。 %TOMCAT_HOME%\conf\wrapper.propertiesファイルに %ORACLE_HOME%\jdbc\lib\classes12.jarへのクラスパスの wrapper.class_path行を追加したら大丈夫でした。 wrapper.class_path=$(wrapper.tomcat_home)\classes wrapper.class_path=$(wrapper.tomcat_home)\lib\jaxp.jar wrapper.class_path=$(wrapper.tomcat_home)\lib\crimson.jar wrapper.class_path=$(wrapper.tomcat_home)\lib\webserver.jar wrapper.class_path=$(wrapper.tomcat_home)\lib\servlet.jar wrapper.class_path=$(wrapper.tomcat_home)\lib\jasper.jar # 追加 wrapper.class_path=C:\oracle\ora90\jdbc\lib\classes12.jar hidebu-さん、yujiさん、tenro-さん 本当にいろいろとありがとうございました。