部署到外部Tomcat服务器时的Grails 3.0上下文路径
我希望将我的Grails 3.0应用程序部署到外部Tomcat服务器实例,而不使用嵌入式Tomcat 8服务器。我遇到的问题是,在将WAR文件部署到现有Tomcat8容器时,似乎无法设置上下文路径 在Grails2.x行中,生成的部署到外部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
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将##
之前的部分作为上下文路径,将#
之后的部分作为版本。这是围绕着我的问题