部署到外部Tomcat服务器时的Grails 3.0上下文路径

部署到外部Tomcat服务器时的Grails 3.0上下文路径,tomcat,grails,tomcat8,grails-3.0,Tomcat,Grails,Tomcat8,Grails 3.0,我希望将我的Grails 3.0应用程序部署到外部Tomcat服务器实例,而不使用嵌入式Tomcat 8服务器。我遇到的问题是,在将WAR文件部署到现有Tomcat8容器时,似乎无法设置上下文路径 在Grails2.x行中,生成的META-INF/MANIFEST.MF文件包含Webapp上下文属性,该属性包含应用程序可以访问的上下文路径。对于Grails3.0和部署WAR文件,上下文路径只是WAR文件的名称(不包括.WAR) 在application.groovy或application.ym

我希望将我的Grails 3.0应用程序部署到外部Tomcat服务器实例,而不使用嵌入式Tomcat 8服务器。我遇到的问题是,在将WAR文件部署到现有Tomcat8容器时,似乎无法设置上下文路径

在Grails2.x行中,生成的
META-INF/MANIFEST.MF
文件包含Webapp上下文属性,该属性包含应用程序可以访问的上下文路径。对于Grails3.0和部署WAR文件,上下文路径只是WAR文件的名称(不包括.WAR)

application.groovy
application.yml
配置文件中设置
server.contextPath
无效(这些文件似乎仅在使用嵌入式tomcat服务器时使用)


如何在Tomcat8上为Grails3.0WAR文件设置上下文路径?

我找到了一个解决方法。默认情况下,Grails3.0创建了一个形式为
的war文件,我可以将
war.archiveName
属性更改为

archiveName = "${project.name}##${project.version}.war"

这使得Tomcat 8将
##
之前的部分作为上下文路径,将
#
之后的部分作为版本。这解决了我遇到的问题。

我想出了一个解决办法。默认情况下,Grails3.0创建了一个形式为
的war文件,我可以将
war.archiveName
属性更改为

archiveName = "${project.name}##${project.version}.war"
这使得Tomcat 8将
##
之前的部分作为上下文路径,将
#
之后的部分作为版本。这是围绕着我的问题