我的旧应用程序使用 grails 版本 4.0.5 可以完美运行。在被迫更新 gradle 后,我什至无法编译它。然后,我使用 grails 5.1.7 创建了一个新项目,使用新命令更新了 build.gradle 文件,最后进行了编译。该应用程序在我的计算机上运行良好:
grails run-app
但是,当我创建并运行使用以下命令创建的 .war 文件时:
grails war
在我的 tomcat 服务器中,我在部署时没有遇到错误,但 http 请求总是收到 HTTP 404 错误。
所以我决定制作一个新的 vanilla 5.1.7 grails 项目并尝试进行一场新的干净战争。这个新项目也可以通过 run-app 在我的计算机上完美运行,部署也没有错误,但在您尝试检索页面时也会显示 HTTP 404 错误。
我一直在阅读 grails 文档,其中 grails war 命令创建了一个嵌入式容器,可能会在 tomcat 上导致问题:
https://docs.grails.org/latest/guide/deployment.html#deploymentStandalone
所以,我尝试遵循建议并从 build.gradle 中删除:
implementation "org.springframework.boot:spring-boot-starter-tomcat"
但仍然没有运气,我不断收到 HTTP 404 错误。
总结:
我的 grails 4.0.5 应用程序运行得很好,使用“grails war”创建了 war 文件,所以我不确定这个“embeddable”是否是问题的原因。由于我没有收到任何错误,所以我不知道。
如有任何帮助,我们将不胜感激
我测试过的机器和软件:
机器1:
机器2:
两者结果相同。
我还尝试添加:
ext['tomcat.version'] = '10.0.10'
以防万一。不工作。
我通过将 JVM 版本从 11 更新到 16,成功在 Tomcat 8 和 Tomcat 9 上运行 Grails 5 应用程序。Grails 5 似乎不支持 Tomcat 10。
您现在正在使用 grails 5 吗?