0

以下のコードは次の行で失敗しClass.forName("oracle.jdbc.driver.OracleDriver"); ます: エラー:

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

2 つの printlns の出力:Wed_Jun_22_11:18:51_PDT_2005 falseこれにより、クラスが存在し、見つけることができると思われます。また、これとまったく同じクラスが非サーブレット アプリケーションでも機能します。

すべてを複数回再起動し、アプリケーション/サーブレットを複数回再生成しました。シンプルで短くするために、すべての値がハードコーディングされています。

私が使用している: Eclipse JavaEE 1.4.2 Tomcat 7 jdk1.7 Oracle 11g R2 Windows 7 64bit

jar ファイルは既に web-inf に追加しています。しかし、それでも次のエラーが発生します: java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver.

どんな提案も素晴らしいでしょう。

4

2 に答える 2

0

アプリケーションと tomcat サーバーを調べずに、正確に何が問題なのかを判断するのは少し困難です。しかし、あなたの問題にはいくつかのヒントがあります。

  1. NoClassDefFoundErrorjarファイルが欠落しているというよりも、クラスの衝突があると常に考えさせられます。と の違いに注意してClassNotFoundくださいNoClassDefFoundError

  2. tomcat は、通常の Java アプリとは異なる方法でクラスをロードします。通常、スタンド アロング Java アプリのクラス ローダーはデリゲート パターンに従います。これは、子クラス ローダーが常にクラス ロード ジョブをその親クラス ローダーに委任することを意味します。しかし、Tomcat はこれに厳密に従っているわけではありません。したがって、それ自体がロードされます(ソースファイルを見つけ、バイトコードを読み取り、クラスClassのインスタンスを作成します)。

したがって、Tomcat ライブラリと Tomcat の下のすべての Web アプリケーションを確認し、複数のバージョンのojdbcXXX.jarがあるかどうかを確認します。

于 2013-03-06T10:20:22.137 に答える
0

C:\apache-tomcat-7.0.47\lib パス (このパスは、Tomcat サーバーを貼り付けた場所によって異なる場合があります) に移動し、含まれていない場合は ojdbc14.jar を通過します。

次に、Eclipseでサーバーを再起動し、サーバーでアプリを実行します

于 2013-11-20T08:02:12.567 に答える