java - 无法从 App Engine flex Java 上的不同项目连接到 Cloud SQL
问题描述
这是引发的异常:
javax.servlet.ServletException: javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
我稍后也会在堆栈跟踪中收到此消息:
Caused by: java.lang.RuntimeException: The Google Cloud SQL API is not enabled for project [xxxxxx]. Please use the Google Developers Console to enable it: https://console.cloud.google.com/apis/api/sqladmin/overview?project=xxxxxx
当我单击控制台链接时,我可以看到 Cloud SQL Api 已启用,并且当数据库位于同一项目上时,代码运行良好。我还在项目中添加了具有角色的 AppEngine 灵活服务帐户,该帐户包含具有App Engine flexible environment Service Agent
角色的 Cloud SQL 数据库Cloud SQL Client
。
接下来我应该尝试什么?谢谢
更新
pom.xml:
-- update2 不再需要那个文件 --
解决方案
在其他项目中访问 Cloud SQL 实例时,请务必在源项目中启用 Cloud SQL Admin API。复制错误消息中的链接并将项目 id 替换为另一个项目 id。当前消息具有误导性,因为它当前假定实例位于同一项目中。
推荐阅读
- ruby-on-rails - 尝试将 :confirmable 添加到 Rails 中的用户时出现无效的交付方法错误
- java - 无法使用 Selenium Java 在网页上输入文本以输入类型
- objective-c - 如何在 Objective-C 中将 long 转换为 NSString?
- c - 为什么对具有灵活数组成员的结构的初始化无效但对固定大小的数组成员有效?
- excel - 将 vbYesNo 输入框上的按钮更改为自定义选项
- python - 使用两个索引访问 pyomo 变量
- java - 为什么 C++ 使用指针指向链表中的下一个节点,而 C# 或 Java 等语言只使用类 Node 的名称?
- html - 如何在 chrome/Firefox 上自动播放音频
- android - kotlin 惰性初始化属性不能在 init 块中修改
- angular - 如何在 Jasmine 中测试 RxJs WebSocket