【发布时间】:2012-03-21 13:21:24
【问题描述】:
我找不到此问题的链接。我已经搜索了使用 MySQL 的示例并且我正在关注示例,但我仍然遇到这个问题。我正在使用 GWT,并且在另一台主机上设置了 MySQL 服务器。我想在部署之前让事情在本地工作。我可以看到驱动程序因为 Class.forName("com.mysql.jdbc.Driver") 调用成功。问题是使用 DriverManager.getConnection(url, username, password) 获取连接。我知道凭据是正确的。我得到的例外是:
java.sql.SQLException: java.lang.NoClassDefFoundError: java.net.Socket 是一个受限类。有关详细信息,请参阅 Google App Engine 开发人员指南。
基于其他示例,我看不出我在做什么不同。这可能是因为 SQL 服务器位于不同的主机上吗?我已经使用 IP 地址设置了连接字符串,所以我不必进行查找:
私有静态最终字符串 url="jdbc:mysql://xx.xx.xx.xx:3306/dbname";
是的,我有一个有效的 IP,我有 XX 的。如果我不在 GWT 中运行,此代码可以正常工作。这可能是因为我在另一台主机上运行数据库服务器吗?这是不允许的吗?
感谢您的帮助
马蒂
【问题讨论】:
-
Marty,您是在服务器端的某处执行 JDBC/Hibernate/whatever 调用吗?确保您不要尝试从客户端调用。也许您可以共享更多设置,例如查询代码...
-
不,我只是想连接到数据库进行查询。这应该只需要 Class.forName() 调用和 connect 调用。自从我发布了这个,我现在正在使用 DriverManager.registerDriver(newAppEngineDriver());通过这个调用,我可以访问在线 SQL 数据库,但仍然会收到本地数据库的套接字错误。你让我分享查询代码,我还没到,我必须先连接才能查询。