• ベストアンサー

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

質問者が選んだベストアンサー

  • ベストアンサー
  • hidebu-
  • ベストアンサー率53% (45/84)
回答No.8

ふたたびです。 サーバーマシン上のクラスパスにJDBCドライバへのパスがとおっていますか??? クライアントマシン上にクラスパスがとおってるのではないのでしょうか??? もしサーバーマシンにJDBCへのクラスパスがとおっていないのでしたらサーバーマシンにオラクルJDBCをコピペしてクラスパスをとおしてください。そうすることによって解決するとおもいます。 サーバーサイドJAVAは自分がおかれているサーバーの設定をみにいきますので、いくらクライアントマシンの設定をしても反映されません

kici
質問者

お礼

いろいろと回答をいただいていたのに、反応が遅くなってすいません。 少し他の仕事をしていて、こっちに手をつけられませんでした。 そして、皆さんのおかげで解決しました。 原因は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-さん 本当にいろいろとありがとうございました。

その他の回答 (7)

  • yuji
  • ベストアンサー率37% (64/169)
回答No.7

ANo.#5の続きです。 TOMCATのインストールディレクトリ/lib の下にある *.jar ファイルは TOMCAT の起動時に 自動的に CLASSPATH に含められます。 ですから、自分で CLASSPATH を指定する必要は ありません。

kici
質問者

お礼

いろいろと回答いただいていたのに、遅くなってすいません。 皆さんのおかげで解決できました。 本当にありがとうございました。

  • hidebu-
  • ベストアンサー率53% (45/84)
回答No.6

TYPE4のJDBCドライバーのようですね。 確認しますがサーバーとクライアントは同じマシン上にあるんですよね?

kici
質問者

補足

はい。 TYPE4のJDBCドライバーです。 サーバーは別のところにあります。

  • yuji
  • ベストアンサー率37% (64/169)
回答No.5

たぶん、ちょっとした設定ミスだとは思うんですが 原因を切り分けやすいように、まずは classes12.zip をclasses12.jarという名前にして TOMCATのインストールディレクトリ/lib/classes12.jar にコピーしてから TOMCATを再起動してみてください。 これでどうなるでしょうか? これでも駄目なら ・ドライバー名を指定しているところのスペルを間違えている ・classes12.zipが壊れている という理由がかんがえられます。

kici
質問者

補足

classes12.zip をclasses12.jarという名前にして TOMCATのインストールディレクトリ/lib/classes12.jar にコピーしてから TOMCATを再起動してみてください。 というのは classes12.zipのファイルをclasses12.jarに変えて TOMCATのインストールディレクトリ/lib以下にclasses12.jarを置く と言うことでしょうか? それともCLASSPATHを変更してファイルを置くと言うことなんでしょうか?

  • hidebu-
  • ベストアンサー率53% (45/84)
回答No.4

環境変数のCLASSPATHはどんな記述になっているんでしょうか? JDBCドライバへのクラスパスだけでなくパスがとおっているクラスパス全てを教えてください。 ちなみに普通のサーブレットは動かすことはできるんですよね?

kici
質問者

補足

こんな感じです。 .;C:jdk1.3.1_02\lib;%TOMCAT_HOME%\lib\servlet.jar;C:\oracle\ora90\jdbc\lib\classes12.zip 普通のサーブレットは動きます。

  • hidebu-
  • ベストアンサー率53% (45/84)
回答No.3

こんにちは 1、JAVAアプリケーションで作成したものは正常にRDBに接続できたのでしょうか? 2、開発ツールは何をつかっているのでしょうか? JBUILDER?FORTE?それとも他のものでしょうか? 3、JDBCドライバは解凍したのちにクラスパスをとおしたのでしょうか?ZIPファイル、もしくはJARファイルのままクラスパスをとおしたのでしょうか? 以上三点をお答えいただければある程度原因がわかるとおもいます

kici
質問者

補足

1.正しくSQL文が実行されました。 2.開発ツールは使っていません。 3.先ほどのyujiさんの補足にも書きましたが、普通にシステム環境変数で   C:\oracle\ora90\jdbc\lib\classes12.zipにCLASSPATHを通しました。 よろしくお願いします。

  • yuji
  • ベストアンサー率37% (64/169)
回答No.2

OracleのJDBC Driverをどこに配置していますか? 配置する場所(配置方法)によっては、 CLASSPATHを通す必要があります。 (この場合はTomcat起動時のCLASSPATHに含める必要が  あります。)

kici
質問者

補足

JDBC Driverってclasses12.zipのファイルですか? それならばC:\oracle\ora90\jdbc\libにあります。 それならば普通にシステム環境変数でCLASSPATHを通しましたが Tomcat起動時のCLASSPATHとは何でしょうか?

  • tenro-
  • ベストアンサー率32% (23/70)
回答No.1

OracleのJDBCははいっていますか?

参考URL:
http://otn.oracle.co.jp/software/tech/java/jdbc/index.html
kici
質問者

補足

Oracle9iのクライアントを入れてあります。

関連するQ&A