2012-03-03 207 views
0

我找不到指向此问题的链接。我已经搜索了使用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中运行,此代码正常工作。这可能是因为我在另一台主机上运行数据库服务器?这是不允许的?

帮助表示赞赏

马蒂

+0

Marty,你做的JDBC /休眠/无论在服务器端调用的地方?确保你不会试图打电话给客户。也许你可以分享更多的设置,如你的查询代码... – 2012-03-03 18:42:39

+0

不,我只是试图连接到数据库做一个查询。这应该只需要Class.forName()调用和一个连接调用。由于我发布了这个,我现在使用DriverManager.registerDriver(newAppEngineDriver());通过这个调用,我可以访问在线SQL数据库,但仍然会在本地数据库中发生套接字错误。您要求我分享查询代码,我还没有到那里,我必须连接才能查询。 – Marty 2012-03-03 23:44:07

回答

1

你的代码是在谷歌App Engine上运行。你不能在GAE上使用MySQL。

Can I use a MySQL database with an App Engine application

+0

在App Engine的设置下有一个关于Google Cloud SQL的部分。在那里,你可以选择“使用MySQL实例”进行开发,这正是我想要做的。你是说为了开发你不能使用本地数据库吗? – Marty 2012-03-04 19:34:03

+0

我相信你必须使用Google的特定MySQL。请注意“创建Google云端sql实例”部分的要求:https://developers.google.com/cloud-sql/docs/before_you_begin – checketts 2012-03-05 23:03:07