我正在使用Spring Boot和Gradle来制造战争。
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
根据答案here和here尝试将上下文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.
我是否错误地配置了上下文?
如果设置上下文是正确的解决方案,我如何将其添加到我的项目中,因为春季启动似乎在编译应用程序时生成web-inf文件夹?
我尝试将context.xml
添加到/src/main/webapp/META-INF
,虽然它包含在战争中但它不会改变上下文路径
答案 0 :(得分:2)
问题的根本原因是使用Manger GUI部署应用程序,似乎使用&#34; WAR文件来部署&#34; &#39;工具&#39;即使提供了上下文,也使用war名称
使用Gradle Cargo plugin我已经能够使用\src\main\resources
中的context.xml并使用build.gradle中的上下文根据需要部署应用程序
cargo {
containerId = 'tomcat7x'
port = 80
deployable {
context = 'bar'
}
...
}