2016-02-10 23 views
1

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

在grails 2.x行中,生成的META-INF/MANIFEST.MF文件包含Webapp-Context属性,该属性包含应用程序可以到达的上下文路径。使用grails 3.0并部署WAR文件时,上下文路径就是war文件的名称(不带.war)。

server.contextPath设置为application.groovyapplication.yml配置文件没有影响(这些只在使用嵌入式tomcat服务器时才使用)。

如何在Tomcat 8上为Grails 3.0 war文件设置上下文路径?

回答

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把##作为上下文路径和##作为版本后的部分之前的部分。这适用于我遇到的问题。