2011-12-28 55 views
-1

我正在使用GlassFish製作一個Web應用程序。在這個webapp中,我需要能夠與MySQL數據庫進行通信。我下載了mysql連接器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

任何幫助表示讚賞。謝謝

+0

右鍵單擊FinanceWorkServer,在彈出窗口中構建路徑庫,轉到庫選項卡並選擇jar選項並將MySQL連接器添加到您的構建路徑 – 2011-12-28 09:15:13

回答

3

jdbc驅動程序jar肯定不會導出到服務器。轉到Eclipse中的problems視圖,您應該看到一條警告,指出jar未導出。右鍵單擊並選擇快速修復,然後按確定導出它。

+0

謝謝。解決了這個問題。我會盡快接受你的回答:) – 2011-12-28 09:16:57

+0

@Pazvanti - 歡迎你:)請閱讀'JB Nizet's'的最後一段回答。使用連接池非常重要。否則,您的應用程序將無法擴展。 – 2011-12-28 09:19:32

3

構建路徑用於編譯您的應用程序。在運行時,容器在Web應用程序的WEB-INF/lib文件夾中搜索庫。將它從構建路徑中移除,放入此目錄中,Eclipse將自動將它添加到構建路徑和運行時類路徑中。

請注意,在像glassfish這樣的Java EE容器內部運行的webapp中,通常會將JDBC驅動程序放入Java EE容器類路徑中,並配置容器以嚮應用程序提供數據源(封裝連接池)。應用程序使用其部署描述符和JNDI來獲取對此數據源的引用。檢查glassfish文檔。在web應用程序的每個請求中打開和關閉連接都不是你應該做的。

+0

+1爲最後一段:) – 2011-12-28 09:17:10

+0

感謝您的回答。我將定義這個以及:) – 2011-12-28 09:40:41

1

你的MySQL連接器JAR粘貼到你的容器,即GlassFish中的lib文件夾,使用GlassFish

轉到安裝目錄,

Glasshfish_Directory\glassfish\lib

並粘貼您的罐子在那裏,並重新啓動服務器

通過將你的jar放在服務器的lib文件夾中,你的jar文件可以被服務器中的所有應用程序訪問。如果明天你想部署另一個應用程序,你不必擔心mysql連接jar再次。