gpt4 book ai didi

servlets - Grails 3,动态更改 contextPath(servletContext?)

转载 作者:行者123 更新时间:2023-12-02 15:53:23 24 4
gpt4 key购买 nike

我在动态更改 grails 3 Web 应用程序的 contextPath 时遇到问题。如果我在 groovy.gsp (server.contextPath = "/myApp") 中更改它,它就可以工作,但我需要使用不同的名称来部署它:

myApp_A.war         =>  IP:Port/myApp_A
myApp_B.war => IP:Port/myApp_B

可以获取目录名称(例如:myApp_A.war 的“myApp_A”)并动态读取正确的属性文件(myApp_A.properties)。之后,我尝试将此实例的上下文路径动态设置为 IP:Port/myApp_A

我试图在 Bootstrap 中更改 grails“server.contextPath”,如下所示:
Holders.config.'server.contextPath' = '/myApp_A'

但这并不完全有效。在这种情况下,我将被重定向到 IP:Port/myApp_A ,但后来我得到了 404。网络服务仍在监听静态配置(“/myApp”)。

我想我必须早点更改它(在 Bootstrap 中为时已晚),或者直接在 servletContext 中更改它。更改后 Holders.config.'server.contextPath'到新路径,servletContext 仍然包含旧的静态路径( servletContext.getContextPath() = 旧路径)。

在:
class Application extends GrailsAutoConfiguration implements EnvironmentAware { 
...

我可以在创建 servletContext 之前读取我的设置并注入(inject)它们。有什么想法可以在那里设置 contextPath 吗?

问候,
chalice 粉丝

最佳答案

在 application.groovy 中,编写您的逻辑来设置上下文路径。

您可以设置 server.contextPath = "path_a"。

所以

if ( myCondition == true ) {
server.contextPath = "path_a"
} else {
server.contextPath = "path_b"
}

关于servlets - Grails 3,动态更改 contextPath(servletContext?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35793047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com