2011-12-01 45 views
22

我正在交換一個MySQL數據庫的Derby數據庫。我有一切工作之前,但在我認爲是正確的配置後,我得到的錯誤:將MySQL數據庫連接到Glassfish類路徑未設置或類名錯誤

引起:javax.resource.ResourceException:類名稱錯誤或類路徑未設置爲:com.mysql.jdbc .jdbc2.optional.MysqlDataSource

從控制檯輸出完整的錯誤:

Caused by: javax.resource.ResourceException: Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource 
at com.sun.gjc.common.DataSourceObjectBuilder.getDataSourceObject(DataSourceObjectBuilder.java:292) 
at com.sun.gjc.common.DataSourceObjectBuilder.constructDataSourceObject(DataSourceObjectBuilder.java:114) 
at com.sun.gjc.spi.ManagedConnectionFactory.getDataSource(ManagedConnectionFactory.java:1292) 
at com.sun.gjc.spi.DSManagedConnectionFactory.getDataSource(DSManagedConnectionFactory.java:148) 
at com.sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.java:101) 
at com.sun.enterprise.resource.allocator.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.java:87) 

我仔細檢查過的一些名字,連接池等resources.I've也加入MySQL驅動.jar文件到兩個項目的玻璃魚圖書館。數據庫肯定能夠通過eclipse正常工作,因爲我能夠查看錶格並在eclipse的數據庫上下文中顯示資源。所以我知道至少這些司機正在工作正確。此外,persistence.xml文件看起來不錯。它像它應該引用jdbc/mydatabase jndi引用,並選擇默認JTA作爲manament類型。

有沒有人有另一個建議?謝謝

+0

它說幾乎相同的事情:爲mysqlstatuspool Ping連接池失敗。 Ping失敗異常 - 類名稱錯誤或類路徑未設置爲:com.mysql.jdbc.jdbc2.optional.MysqlDataSource請檢查server.log以獲取更多詳細信息。 Ping失敗異常 – Randnum

+0

當我使用derby數據庫時,我從來沒有必須手動設置此連接池的類路徑,所以我希望如果有人認爲這是我必須做的,他們可以解釋資源的位置以及準確地做到這一點。 – Randnum

+0

數據源類名:com.mysql.jdbc.jdbc2.optional.MysqlDataSource在管理窗口中爲我自動生成,所以我沒有選擇它,也不知道它來自哪裏。 – Randnum

回答

35

I've also added the MySQL driver .jars to the library of glassfish in both projects.

這顯然做得不對。 JAR必須進入Glassfish安裝的/glassfish/domains/[domainname]/lib/ext文件夾,其中[domainname]通常默認爲domain1。你可以也不應該從Eclipse端進行配置。

+0

好的,我沒有那樣加它。我通過右鍵單擊eclipse中的glassfish庫並在用戶庫中選擇新的連接器庫並從中選擇我的jar來添加它。我會嘗試你的建議。謝謝 – Randnum

+1

撤銷這些更改。 – BalusC

+0

謝謝BalusC工作得很好。 – Randnum

21

看起來我很晚纔回復,但是指出此主題的人可能會發現以下信息很有用。所以,我在這裏張貼:

  1. http://dev.mysql.com/downloads/connector/j/5.0.html
  2. 解壓包下載連接器罐和複製的MySQL連接器的Java-verno-bin.jar
  3. 過去一樣在[GlassFish的安裝目錄] /域/ [域名]/lib文件夾
  4. 重啓域和ping命令檢查的JDBC連接池

你去那裏的連接。如果您的MySql正在運行,那麼它將成功地ping數據庫

+3

重新啓動域不會刷新連接池的所有其他屬性。 (我在將該jar複製過來之前創建了池。) 對於某人知道您應該在複製該jar之後重新創建池可能會有所幫助。我這樣做後,一切都爲我工作。 – w3bshark

5

我將jar文件複製到$glassfish_install_folder\glassfish\lib,之後它工作。我用glassfish 4.0

從oracle檢查這個link