我找不到指向此問題的鏈接。我已經搜索了使用MySQL的例子,我正在關注這些例子,但我仍然有這個問題。我正在使用GWT,並且我在另一臺主機上安裝了MySQL服務器。我希望在部署之前在本地工作。我能夠看到驅動程序爲Class.forName(「com.mysql.jdbc.Driver」)調用成功。問題是使用DriverManager.getConnection(url,username,password)獲取連接。我知道憑據是正確的。我得到的例外是:DriverManager.getConnection()爲MySql數據庫訪問拋出異常
java.sql.SQLException:java.lang.NoClassDefFoundError:java.net.Socket是一個受限制的類。有關更多詳細信息,請參閱Google App Engine開發人員指南。
根據其他例子,我沒有看到我在做什麼不同。這可能是因爲SQL服務器在不同的主機上?我已經使用IP地址設置了連接字符串,因此我不必執行查找:
private static final String url =「jdbc:mysql://xx.xx.xx.xx:3306/dbname」 ;
是的,我有一個有效的IP,我有XX的。如果我沒有在GWT中運行,此代碼正常工作。這可能是因爲我在另一臺主機上運行數據庫服務器?這是不允許的?
幫助表示讚賞
馬蒂
Marty,你做的JDBC /休眠/無論在服務器端調用的地方?確保你不會試圖打電話給客戶。也許你可以分享更多的設置,如你的查詢代碼... – 2012-03-03 18:42:39
不,我只是試圖連接到數據庫做一個查詢。這應該只需要Class.forName()調用和一個連接調用。由於我發佈了這個,我現在使用DriverManager.registerDriver(newAppEngineDriver());通過這個調用,我可以訪問在線SQL數據庫,但仍然會在本地數據庫中發生套接字錯誤。您要求我分享查詢代碼,我還沒有到那裏,我必須連接才能查詢。 – Marty 2012-03-03 23:44:07