【发布时间】:2016-06-18 00:15:48
【问题描述】:
我在动态更改 grails 3 Web 应用程序的 contextPath 时遇到问题。如果我在 groovy.gsp (server.contextPath = "/myApp") 中更改它,它就可以工作,但我需要使用不同的名称来部署它:
myApp_A.war => IP:Port/myApp_A
myApp_B.war => IP:Port/myApp_B
In 可以获取目录名称(例如:myApp_A.war 的“myApp_A”)并动态读取正确的属性文件(myApp_A.properties)。之后,我尝试将此实例的上下文路径动态设置为 IP:Port/myApp_A
我尝试像这样在引导程序中更改 grails“server.contextPath”:
Holders.config.'server.contextPath' = '/myApp_A'
但这并不完全有效。在这种情况下,我将被重定向到IP:Port/myApp_A,但随后我得到了 404。网络服务仍在侦听静态配置(“/myApp”)。
我想我必须早点更改它(在引导程序中为时已晚),或者直接在 servletContext 中更改它。将Holders.config.'server.contextPath' 更改为新路径后,servletContext 仍然包含旧的静态路径(servletContext.getContextPath() = 旧路径)。
在:
class Application extends GrailsAutoConfiguration implements EnvironmentAware {
...
我可以在创建 servletContext 之前读取我的设置并注入它们。有什么想法可以在那里设置 contextPath 吗?
问候, 圣杯粉丝
【问题讨论】:
标签: servlets grails grails-3.0 contextpath