我已经能够运行以下 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"
关于mysql - 我可以将 Grails 4 应用程序部署到 Google Cloud Platform 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58170019/