我找不到指向此问题的链接。我已经搜索了使用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