作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Grails 应用程序,我想将其部署到 tomcat 实例。使用的相关库版本:
Grails Version: 3.2.0
Groovy Version: 2.4.7
JVM Version: 1.7.0_79
Tomcat Version: 7.0.39
我建了一个WAR文件(使用grails war
),上传到服务器,放到webapp目录下,重启tomcat。 WAR 文件像往常一样被解压,但是当试图访问 webapp 的索引页面时,它只返回错误 404。如果我手动将一个名为 ìndex.html 的文件放在 webapp 的目录中,那么这个文件就会被提供。因此,我得出结论,tomcat 根本没有启动该应用程序。
我试图检查日志是否有错误,但 catalina.out 几乎是空的。重新部署我的 webapp 会产生以下日志输出:
INFO: Reloading Context with name [/myapp] has started
Oct 18, 2016 1:56:30 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/<tomcat-path>/webapps/myapp/WEB-INF/lib/javax.el-api-2.2.4.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/el/Expression.class
Oct 18, 2016 1:57:43 PM org.apache.catalina.core.ApplicationContext log
INFO: 1 Spring WebApplicationInitializers detected on classpath
Oct 18, 2016 1:57:43 PM org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/myapp] is completed
我在那里看不到任何严重错误。我怀疑的一件事是我的项目没有 web.xml 文件,但我读到这在 Grails 3 和 servlet 容器 > 版本 3.0 中不再需要 web.xml(tomcat 7 支持 servlet 3.0 版)。我尝试过的事情:
java -Dgrails.env=prod -jar myapp.war
)。这工作得很好,我可以在端口 8080 上本地访问它(我不能从远程尝试它,因为只有我真正想要部署到的 tomcat 实例被允许通过防火墙)。 org.springframework.boot:spring-boot-starter-tomcat
设置为 provided
build.gradle
中的tomcat版本设置为ext['tomcat.version'] = '7.0.72'
(官方文档推荐,我可以不要使用与服务器 (7.0.39) 上的 tomcat 完全相同的版本,因为某些库在 Maven Central 上不适用于此版本。所有尝试都没有任何效果。我非常感谢任何提示、进一步的调试技巧或我可能忽略的事情。
提前致谢!
最佳答案
这是一个 Grails 错误,将在今天发布的 3.2.1 中修复。 3.2.0 的解决方案见如下命令:
https://github.com/grails/grails-core/issues/10196#issuecomment-251155196
关于spring - 如何在 Tomcat 7 上部署 Grails 3 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40108167/
我是一名优秀的程序员,十分优秀!