2011-10-26 7 views
0

私はjavaとOracleの接続に新しいです。私はjava/tomcatのサービスからOracleのデータベースへの接続を確立できません。Java/TomcatとOracle 10gの接続

私は、Java JDK 1.7およびOracleのバージョンを使用しています:私はまた、PATHにJAVAビンを追加した環境変数(のWindows Server 2003) C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\*

にCLASSPATHを追加

Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product 
PL/SQL Release 10.2.0.1.0 - Production 
CORE 10.2.0.1.0 Production 
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production 
NLSRTL Version 10.2.0.1.0 - Production 

をし、 ojdbc14.jarojdbc14_g.jar

:(TOMCATが使用する)このフォルダに

JAVA_HOMEは2つのだけファイルがあります

私のJavaコード:

 import java.sql.*; 
     .... 
     .... 

         try 
         {        
           System.out.println("0"); 
           Class.forName("oracle.jdbc.driver.OracleDriver"); 
           System.out.println("1"); 
           Connection conn = DriverManager.getConnection(
            "jdbc:oracle:thin:@//127.0.0.1:1521/xe", 
            "username", "password"); 
           System.out.println("2");      
         } 
         catch (Exception e) 
         { 
           //e.printStackTrace(); 
          System.out.println("exc"); 
         } 

出力:(彼はあなたが以下のようにクラスパスを設定する必要がClass.forName

0 
exc 
+0

また、どのような例外がありますか?私は 'ClassNotFoundException'の疑いがあります、そうですか? – Thomas

答えて

1

TomcatとすべてのJava EEアプリケーションサーバーは、CLASSPATH環境変数を完全に無視します。 IDEの場合と同じです。私が使っているマシンには何も持っていません。

これを行うには、スクリプトを変更しないでください。

すべてのJava EEアプリケーションサーバーには、クラスローダーの階層があります。

最初に実行するのはブートストラップクラスローダーです。

次はサーバークラスローダーです。これらのJARの適切な場所は、Tomcatのserver/libディレクトリです。/libディレクトリには、すべてのデプロイメントに共通するすべてのJARが含まれています。起動時にWARファイルの前にロードされます。

展開された各WARファイルのクラスローダがあります。サーバークラスローダーが実行された後、Tomcatは、WEB-INF/libに入れたすべてのJARファイルと、WEB-INF/classesにあるすべての.classファイルをプロジェクトのCLASSPATHとして扱います。

作業が完了したら、次にJNDIルックアップを使用する方法を学習します。投稿したコードは良い考えではありません。 Tomcatがあなたのために接続プールを管理できるようにします。

1

上の例外を投げるようだ:

C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar 

クラスパス使用するjarファイルを知る必要があります。これはプロダクションドライバであり、_gを持つものはデバッグ目的です。ワイルドカードを使用すると、Javaクラスパスを設定できません。クラスパスを設定する必要がないようにするには、ojdbc14.jarを$tomcat.home/libディレクトリにコピーします。クラスパスが正しく設定されていないことを意味Class.forName()でジャストe.printStackTrace();プリントアウトや気象例外が発生ご覧

0

...
それならば、... すべてのものシーム罰金..ちょうどcheck..inクラスパス

0

ドライバ名がworngです。

oracle.jdbc.driver.OracleDriverを使用するのではなく、oracle.jdbc.OracleDriverである必要があります。

0

プロジェクトのデプロイメントアセンブリにojdbc14.jarファイルを含める必要があります。 Eclipseを使用:

projの - >プロパティ - >展開組立 - >を選択/ WebContentをする - >追加 - > JavaBuildPathEnteries - >次 - > ojdbc **ジャー - >フィニッシュ。

関連する問題