java - 无法从 App Engine flex Java 上的不同项目连接到 Cloud SQL

标签 java google-app-engine google-cloud-platform google-cloud-sql app-engine-flexible

这是抛出的异常:

javax.servlet.ServletException:javax.servlet.ServletException:org.glassfish.jersey.server.ContainerException:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建与数据库服务器的连接。

稍后我还在堆栈跟踪中收到此消息:

由以下原因引起:java.lang.RuntimeException:未为项目 [xxxxxx] 启用 Google Cloud SQL API。请使用 Google Developers Console 启用它:https://console.cloud.google.com/apis/api/sqladmin/overview?project=xxxxxx

当我单击控制台链接时,我可以看到 Cloud SQL Api 已启用,并且当数据库位于同一项目时代码运行良好。我还在包含具有 Cloud SQL Client 角色的 Cloud SQL 数据库的项目中添加了具有 App Engine 灵活环境服务代理 角色的 AppEngine 灵活服务帐号。

接下来我应该尝试什么?谢谢

更新

pom.xml:

-- update2 不再需要该文件--

最佳答案

访问不同项目中的 Cloud SQL 实例时,在源项目中启用 Cloud SQL Admin API 非常重要。复制错误消息中的链接并将项目 ID 替换为其他项目 ID。当前消息具有误导性,因为它当前假设实例位于同一项目中。

关于java - 无法从 App Engine flex Java 上的不同项目连接到 Cloud SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52756897/

相关文章:

google-app-engine - 尝试读取 *http.Response Body 时出现运行时错误,已使用 urlfetch.Transport

google-app-engine - 为自定义域启用 SSL 时,Google App Engine 中未列出子域

hadoop - 尝试打开 Hadoop 时,我在 Google Cloud 终端中不断收到 "Permission Denied"

java - 如何持久化实体类中的数据并与数据传输对象结合?

java - 如何同步围绕方法定义的 Java 方面?

google-app-engine - 通俗地说 : Relation between Google Apps Script and Google Cloud Platform

python - 无法在本地运行的 Flask 应用程序中连接到 Google SQL

java - 如何从 Google Cloud Platform Java Flexible Environment 下载应用程序

java - JSP bean 中的 Guice 注入(inject)

java - 在 Wicket 中使用 Javascript