2011-12-28 8 views
-1

私はGlassFishを使用してWebアプリケーションを作成しています。このwebappでは、私はMySQLデータベースと通信できる必要があります。私はmysql-connector jarファイルをダウンロードし、ビルドパスに追加しました。私はそれに接続しようとすると、それでも、私はこのエラーを取得する:にjava.lang.ClassNotFoundException:はcom.mysql.jdbc.DriverJDBC ClassNotFound

これは、データベースに接続するための私のコードです:

public void connect(){ 
    try { 
     Class.forName(dbClass); 
     connect = DriverManager.getConnection(dbUrl, "root", "333333"); 
     statement = connect.createStatement(); 
     System.out.println("Connected to Database"); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (ClassNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

私はまた、

enter image description here

すべてのヘルプは高く評価されて:あなたはjarファイルをビルドパスに追加されていることを確認できるようにスクリーンショットを添付。ありがとう

+0

FinanceWorkServerを右クリックし、ポップアップでパスデントをビルドしてライブラリタブに移動し、jarオプションを選択してビルドパスにMySQLコネクタを追加します –

答えて

3

jdbcドライバjarは、必ずサーバにエクスポートされません。 problemsビューのEclipseに移動し、jarがエクスポートされていないという警告が表示されます。右クリックして[クイックフィックス]を選択し、[OK]を押してエクスポートします。

+0

ありがとう。問題を解決した –

+0

@Pazvanti - あなたも大歓迎です。JB Nizetの答えの最後の段落も読んでください。接続プールを使用することは本当に重要です。そうしないと、アプリケーションがスケーラビリティを失います。 –

3

ビルドパスは、アプリケーションのコンパイルに使用されます。実行時に、コンテナはWebアプリケーションのWEB-INF/libフォルダ内のライブラリを検索します。それをビルドパスから削除し、このディレクトリに置くと、Eclipseはそれをビルドパスとランタイムクラスパスに自動的に追加します。

通常、glassfishな​​どのJava EEコンテナ内で実行されるWebアプリケーションでは、JDBCドライバをJava EEコンテナのクラスパスに配置し、アプリケーションにデータソース(接続プールをカプセル化)を提供するようにコンテナを設定します。アプリケーションは、デプロイメント記述子とJNDIを使用して、このデータソースへの参照を取得します。グラスフィッシュの文書を確認してください。 Webアプリケーションのリクエストごとに接続を開いたり閉じたりすることは、あなたがすべきことではありません。

+0

最後の段落の+1: –

+0

答えをありがとう。私はdefinetlyこれも同様に見ていきます:) –

1

あなたのコンテナすなわちのGlassFishのlibフォルダにあなたのmysql-コネクターjarを貼り付け、GlassFishのの

後藤のインストールディレクトリ、

Glasshfish_Directory\glassfish\lib

とサーバーがあなたのjarファイルを貼り付け、再起動

jarファイルをサーバーのlibフォルダに置くと、サーバー上のすべてのアプリケーションからjarファイルにアクセスできます。 Tomorrowが別のアプリケーションを配備したい場合、mysql-connect jarについてもう一度気にする必要はありません。