2016-02-10 25 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把##作爲上下文路徑和##作爲版本後的部分之前的部分。這適用於我遇到的問題。