【问题标题】:DriverManager.getConnection() throws exception for MySql DB accessDriverManager.getConnection() 为 MySql DB 访问引发异常
【发布时间】: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 数据库,但仍然会收到本地数据库的套接字错误。你让我分享查询代码,我还没到,我必须先连接才能查询。

标签: mysql gwt


【解决方案1】:

您的代码正在 Google App Engine 上运行。你不能在 GAE 上使用 MySQL。

Can I use a MySQL database with an App Engine application

【讨论】:

  • 在 App Engine 的设置下,有一个关于 Google Cloud SQL 的部分。在那里你可以选择“使用 MySQL 实例”进行开发,这就是我想要做的。你是说开发不能使用本地数据库?
  • 我相信你必须使用谷歌的特定MySQL。请注意“创建 Google 云 sql 实例”部分的要求:developers.google.com/cloud-sql/docs/before_you_begin
猜你喜欢
  • 2015-12-08
  • 2017-01-17
  • 2014-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多