【发布时间】:2017-09-28 10:10:11
【问题描述】:
我正在将 Web 应用程序从 OpenShift v2 迁移到 OpenShift Pro。这是一个常规的 Java Tomcat 应用程序。
我在 OpenShift v2 上的 webapp 在 server.xml 中指定了一个额外的 docBase,如下所示:
<Context docBase="${OPENSHIFT_DATA_DIR}/documents" path="/documents" />
在部署期间,环境变量 OPENSHIFT_DATA_DIR 被替换为它的值:/opt/app-root/data
正如你所料。
我已经在 OpenShift Pro 中完成了相同的设置(尽管完全不同),但部署失败。经过调查,我在日志中看到了这一点:
Caused by: java.lang.IllegalArgumentException: The main resource set specified [/deployments/${OPENSHIFT_DATA_DIR}/documents] is not valid
为了克服这个问题,我只是在 server.xml 中硬编码 /opt/app-root/data,如下所示:
<Context docBase="/opt/app-root/data/documents" path="/documents" />
下一个部署成功了。
我的问题是:
这是部署过程中的错误吗?
这是将环境变量注入配置文件的错误方法吗?
如果是这样,正确的方法是什么?
任何帮助都将不胜感激,我不喜欢硬编码的东西,它总是会在将来的某个日期回来咬你......
【问题讨论】:
标签: tomcat configuration openshift