PuppetLabs在PuppetForge上有一个用于部署Tomcat及其配置的模块。https://forge.puppet.com/puppetlabs/tomcat
Tomcat有一个文档化的功能,可以防止您在文件META-INF/context. xml中设置上下文路径
Tomcat不使用context. xml中的path属性设置上下文路径,而是使用.war文件的文件名来确定路径。其他Tomcat选项在此处的stackoverflow中进行了描述:如何在war文件中的META-INF/context.xml中指定Tomcat 8上java"Context path"?
在我看来,在warfile的名称中添加版本号是一件好事,而Tomcat的这个特性是一件坏事。
我希望PuppetLabs的Tomcat模块有一个属性,允许您设置上下文路径并解决Tomcat的肮脏问题。
有人知道怎么做吗?
答案可以在:https://tickets.puppetlabs.com/browse/MODULES-1545
这里有一个例子,它显示了在哪里提供实际的war文件名,包括版本号,在哪里提供没有版本号。后一个参数决定了war文件副本的名称,正是这个副本设置了上下文根。
重要的Puppetlabs Tomcat模块(版本1.6.1)有一个bug,它阻止它识别更新的战争文件。一个叫丹尼尔·哈格的人在2015年11月为这个bug提供了一个修复程序。只有当你应用丹尼尔斯补丁时,它才有效。
为什么Daniel的补丁没有进入当前版本,我不明白。没有Daniel的修复,我无法使用它。
如果您被限制使用一个版本的木偶labs-tomcat模块,而不应用bug修复程序来部署战争文件。
继续使用它来配置Tomcat,但避免使用它的war功能。做你自己的事情以确保您在webapps目录中拥有正确版本的. war文件并命名以确保所需的上下文根目录。