gpt4 book ai didi

java - Spring Boot/Gradle/Tomcat 将上下文路径设置为 .war 名称以外的内容

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:10 26 4
gpt4 key购买 nike

我正在使用 Spring Boot 和 Gradle 创建一场 war 。

war {
baseName = 'foo'
version = '0.1.0'
}

由于 war 任务有一个版本号,因此生成的 war 名称是 foo-0.1.0.war所以当部署到 Tomcat 时,上下文路径是 http://localhost/foo-0.1.0/

我想使用上下文路径“bar”,省略版本号并使用不同的路径。

http://localhost/bar

这可能使用 Spring 注释吗?我试过更改 @RequestMapping但这只会将上下文更改为 http://localhost/foo-0.1.0/bar

按照答案 herehere尝试将上下文 xml 片段添加到 <catalina_home>/conf/Catalina/localhost/

<Context docBase="/foo-0.1.0" path="/bar" reloadable="true"> </Context>

但是尽管 Tomcat 正在取消部署/foo-0.1.0,但我得到了错误:

WARNING: A docBase C:\tools\apache-tomcat-7.0.53\webapps\foo-0.1.0 inside the host appBase has been specified, and will be ignored.

我是否错误地配置了 Context?

如果设置上下文是正确的解决方案,我该如何将其添加到我的项目中,因为在编译应用程序时 spring boot 似乎会生成 web-inf 文件夹?

我试过添加 context.xml/src/main/webapp/META-INF尽管它包含在 war 中,但它不会改变上下文路径

enter image description here

最佳答案

问题的根本原因是使用 Manger GUI 部署应用程序,即使提供了上下文,似乎使用“WAR 文件部署”“工具”也使用了 war 名称

Manager - war file to deploy

使用 Gradle Cargo plugin我已经能够根据需要在 \src\main\resources 中使用 context.xml 并在 build.gradle 中使用上下文

来部署应用程序
cargo {
containerId = 'tomcat7x'
port = 80

deployable {
context = 'bar'
}
...
}

关于java - Spring Boot/Gradle/Tomcat 将上下文路径设置为 .war 名称以外的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31000216/

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