我想将Grails 3.0应用程序部署到外部Tomcat Server实例,而不是使用嵌入式tomcat 8服务器。我遇到的问题是,在将WAR文件部署到现有Tomcat 8容器时,似乎无法设置上下文路径。
在grails 2.x行中,生成的META-INF/MANIFEST.MF
文件包含Webapp-Context属性,该属性包含可以访问应用程序的上下文路径。使用grails 3.0并部署WAR文件,上下文路径只是war文件的名称(没有.war)。
在server.contextPath
或application.groovy
配置文件中设置application.yml
无效(这些似乎仅在使用嵌入式tomcat服务器时使用)。
如何在Tomcat 8上为Grails 3.0 war文件设置上下文路径?
答案 0 :(得分:0)
我想出了一个解决方法。默认情况下,grails 3.0会创建一个<app name>-<app version>.war
形式的war文件,这会导致默认的上下文路径为<app name>-<app version>
。
我使用的修复程序是编辑build.gradle
文件以自定义war文件的名称。使用Tomcat 8的文档,我可以将war.archiveName
属性更改为
archiveName = "${project.name}##${project.version}.war"
这使得Tomcat 8在##
之前作为上下文路径,而##
之后的部分作为版本。这解决了我遇到的问题。