在Tomcat中将主机声明上的createDirs属性设置为false的含义

问题描述

当以非root用户身份在Docker容器中运行Tomcat时,我在日志中收到错误条目:

Unable to create directory for deployment: [/usr/local/tomcat/conf/Catalina/localhost]

我追溯到启动Tomcat时上述目录不存在,并且启动Tomcat的用户没有创建目录的权限。

我还跟踪了此错误消息的来源以及其原因是由于server.xml中主机声明上的createDirs属性未设置为false。 createDirs属性的文档指出,将其设置为true(认值)时,它将尝试创建一些目录,失败时会记录错误,但失败不会停止Tomcat的启动。

但是我找不到任何地方的原因是为什么首先创建这些目录,以及当createDirs设置为false时未创建这些目录的后果。

这个问题通常是针对Tomcat Docker映像的(以确定通用的Tomcat Docker映像是否应该做一些不同的事情以防止日志中出现这些错误),但是在我的特定情况下,我正在运行一个Web应用程序:爆炸的WAR在webapps / ROOT目录中,它位于/webapps/ROOT/meta-inf/context.xml

中的context.xml中

TIA

保罗

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)