我已经可以阅读以下Grails 3指南,将Grails应用程序部署到GCP。

https://guides.grails.org/grails-google-cloud/guide/index.html

我尝试使用自己的Grails 4应用程序对此进行镜像,但是当我尝试访问它时失败。appengineDeploy成功完成,但是当我尝试访问webapp URL时,出现了很长的堆栈跟踪,最终导致以下错误;

Failed to instantiate [org.grails.orm.hibernate.HibernateDatastore]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/mysql/cj/api/io/SocketFactory
...
...
Caused by: java.lang.ClassNotFoundException: com.mysql.cj.api.io.SocketFactory

我一直在尝试各种版本的套接字工厂依赖项,以尝试解决和重新部署,但都导致相同的错误。
我使用了各种版本的j-6连接器(com.google.cloud.sql:mysql-socket-factory-connector-j-6),而我最近的尝试是使用j-8(1.0.14)。

在这一点上,甚至知道我正在尝试的方法是否可能也很棒。 Java 11支持已在最近添加,我已经进行了必要的配置调整,以使我的应用得以部署,但后来我无法访问它。

最佳答案

与mysql-socket-factor-connector-j-8一起升级到mysql-connector-java版本8似乎已经使这个特定问题消失了(并将我转移到下一个)。

依赖关系如下;

runtime "mysql:mysql-connector-java:8.0.15"
runtime "com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.0.14"

08-26 16:28
查看更多