【发布时间】:2015-10-22 17:58:09
【问题描述】:
我有一个打包为war 文件的Web 应用程序,该文件部署到Liberty 容器中的Bluemix。应用程序将配置信息存储在 Web 应用程序文件夹之外的目录集合中,并在初始安装期间将默认文件复制到该位置。当我将其部署为简单的默认战争文件时,将默认文件复制到此位置时出错。由于 Liberty 默认不展开 war 文件,因此我将 war 分解到一个目录 (defaultServer/apps/idmu.war) 并使用此处记录的服务器目录部署:https://www.ng.bluemix.net/docs/starters/liberty/index.html#optionsforpushinglibertyapplications__ServerDirectory
使用server.xml的
<server>
<featureManager>
<feature>jsp-2.3</feature>
</featureManager>
<httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="8080" />
<application name="idmu" context-root="/" type="war" location="idmu.war"/>
</server>
使用以下命令重新发布应用后
cf push idmu -p defaultServer
应用程序重新启动,我仍然收到文件复制错误,所以我怀疑是目标目录和权限导致了问题。非常感谢有关在何处找到此目录以及如何设置权限的任何帮助。
【问题讨论】:
-
您想将这些文件复制到哪里?您应该对 /home/vcap/ 具有写入权限,这是您在 buildpack 容器中的主目录。例如,/wlp 位于 /home/vcap/app/wlp
-
非常感谢。通过该更改,我现在可以复制文件,但我需要编辑内容以描述环境。此外,这个目录似乎是暂时的(即,当应用程序重新启动时它会消失) - 存储基于文件的持久数据的正确位置在哪里?如何在部署期间编辑或上传这些文件?
-
评论已移至答案,因为它似乎对您有所帮助。
标签: java ibm-cloud websphere-liberty