我已经可以阅读以下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支持已在最近添加,我已经进行了必要的配置调整,以使我的应用得以部署,但后来我无法访问它。
答案 0 :(得分:0)
与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"