【问题标题】:Is there any way to configure tomcat servlet working directory?有没有办法配置tomcat servlet工作目录?
【发布时间】:2016-06-07 16:14:11
【问题描述】:

当我在 tomcat 中运行我的 web 应用程序时,当然它是具有 tomcat 工作目录的类,因为 JWM 是在那里启动的。但是有没有办法配置tomcat,因为每个部署的应用程序的所有类,都将应用程序目录作为它们的工作目录?

【问题讨论】:

  • 那么你到底想做什么?
  • @PritamBanerjee 我已经编辑了问题:我需要我的应用程序类将应用程序文件夹作为工作目录,而不是 tomcat 启动文件夹。

标签: java tomcat web-applications


【解决方案1】:

您不必配置 Tomcat 工作目录。您可以通过调用从您的 servlet 获取您的应用程序根目录:

 String root = getServletContext().getRealPath("/");

请注意,此文件夹可从客户端浏览器访问。

如果您想要一个客户端无法访问的工作目录,请在 WEB-INF 中创建一个文件夹

 String privateRoot = getServletContext().getRealPath("/WEB-INF");

【讨论】:

  • 是的,我可以获得应用程序的绝对路径,但我正在尝试配置 log4j。所以,我正在寻找一种方法,我可以在其中设置日志的本地路径,并确保在容器的任何配置上,日志都将存储在我的应用程序目录中。
【解决方案2】:

您可以更改 Tomcat 的启动脚本。 tomcat 进程继承启动脚本的当前目录。要使 tomcat 在不同的工作目录中启动,您必须弄清楚启动 tomcat 的内容,并在运行 startup.sh 之前更改该进程以更改为所需的目录。

您可以查看here 了解如何设置工作目录。

【讨论】:

  • 这很好,但是它只是改变了 tomcat WD,所以我将有相同的 WD 用于 tomcat 和 all 我的 webapps,当然可以通过从不同目录启动 tomcat 来访问。我正在寻找配置 webapp WD 的方法,独立于其他应用程序和 tomcat(仅取决于 webapps 根目录)。
猜你喜欢
  • 1970-01-01
  • 2011-05-06
  • 1970-01-01
  • 2018-05-14
  • 1970-01-01
  • 2011-01-13
  • 2020-05-23
  • 2010-09-17
  • 1970-01-01
相关资源
最近更新 更多