这里是抛出的异常:
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已启用,并且当数据库位于同一项目中时,代码运行正常。我还添加了在包含Cloud SQL数据库且角色为App Engine flexible environment Service Agent
的项目中具有Cloud SQL Client
角色的AppEngine弹性服务帐户。
接下来我应该尝试什么?谢谢
更新
pom.xml:
-update2不再需要该文件-
答案 0 :(得分:1)
访问其他项目中的Cloud SQL实例时,在源项目中启用Cloud SQL Admin API非常重要。复制错误消息中的链接,然后用其他项目ID替换项目ID。当前消息会误导您,因为它当前假设实例位于同一项目中。
答案 1 :(得分:0)
项目间Cloud SQL通信需要两件事:
不同项目中的App Engine和Cloud SQL
对于不同项目中的App Engine应用程序和Cloud SQL实例,您必须授予默认的Appengine服务帐户(
[PROJECT-ID]@appspot.gserviceaccount.com)
以下IAM角色之一:
- Cloud SQL客户端
- Cloud SQL编辑器
- Cloud SQL管理员