java - 仅在第一次尝试时从 App Engine servlet 连接到 Google Cloud MySQL 时出错

标签 java mysql hibernate google-app-engine servlets

描述:

您好,我有一个从 Eclipse Oxygen 部署的 Google App Engine 标准 Web 服务,其中包含一个使用 hibernate 连接到 Google Cloud 中具有相同项目 ID 的 MySQL 数据库的 servlet。这是一个简单的 Activity 管理网站,您(作为受邀者)在其中输入您的电子邮件和给定代码(请至少在这里不要担心安全问题),然后确认或取消对给定 Activity 的协助。

错误:

错误如下,在本地主机上,测试的项目将在每次连接和数据传输上正确执行。但是一旦我部署它,当我从用户端测试它时,第一次尝试(无论您确认、取消还是输入无效数据)都会无法连接到数据库。如果你重做操作,就会成功。

需要考虑的信息:

  • 我没有使用 JDBC GoogleDriver(因为我找不到让它工作的方法 [ClassNotFoundException...])。我使用“com.mysql.jdbc.Driver”。
  • 数据库允许 IP 0.0.0.0/0(每个人)连接到它(我知道,安全问题)。
  • Servlet 使用 root + 密码访问数据库(更多安全问题...)。
  • 当用户确认/取消时,Servlet 将要求 Business 类实例检索用户数据,以检查其是否与邀请码配对。

注意:

我不知道这是怎么发生的。请向我询问您需要的详细信息,我将与他们一起编辑这个问题,因为我不知道从哪里开始。 我很确定这种仅限首次尝试的模式对于任何经历过这种情况的人来说一定很容易识别。非常感谢。

最佳答案

当在本地主机上正确运行时,显然 Google Cloud 存在特定问题。 Google Cloud 的 0.0.0.0/0 并不是真正的“整个地球”。您必须添加要连接的子网。我知道的就这么多了。

更好的是,您可以在 Bluemix 等 PaaS 上进行测试。 Bluemix 有自己的大问答 - developer.ibm.com/answers/加上 StackOverflow。

当然,您可以使用 VPS 作为 PaaS 之外的其他选项。本质上,您需要运行一个应用程序,而不是与某些平台竞争。

关于java - 仅在第一次尝试时从 App Engine servlet 连接到 Google Cloud MySQL 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45518838/

相关文章:

mysql 程序未使用 phpmyadmin 创建/工作

hibernate - Nested embeddable - 可嵌入的 AttributeOverride

java - JPA Hibernate 类型定义

javascript - 如何在 Node JS 中接受大量 API 请求

mysql - 如果星期一至星期日,Laravel 从数据库中确定日期

java - 如何在 Apache Poi 上使用子表?

mysql - 删除前获取字段值

java - JPA 实体及其自定义功能

java - 将 JFileChooser 添加到我的项目后,IntelliJ 调试器不会停止

java - java中枚举如何保证类型安全