【问题标题】:Error connecting from GAppEngine servlet to GoogleCloud MySQL only at first try仅在第一次尝试从 GAppEngine servlet 连接到 GoogleCloud MySQL 时出错
【发布时间】:2018-01-13 02:28:02
【问题描述】:

说明:

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

错误:

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

需要考虑的信息:

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

注意:

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

【问题讨论】:

    标签: java mysql hibernate google-app-engine servlets


    【解决方案1】:

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

    你可以在一些 PaaS 上进行测试,比如 Bluemix。 Bluemix 有自己的大型问答 - developer.ibm.com/answers/ 和 StackOverflow。

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

    【讨论】:

    • 感谢您的回答,感谢您的建议!仍然想知道发生这种情况的原因。
    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 2016-07-11
    • 2015-07-02
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多