【问题标题】:Extend the set of reloadable directories on tomcat在 tomcat 上扩展可重载目录集
【发布时间】:2018-02-12 07:45:49
【问题描述】:

我想在 tomcat 7.0.59 上扩展可重新加载的目录集。 当Context 中的reloadable 属性设置为true 时,tomcat 会监视/WEB-INF/classes//WEB-INF/lib 中的类。

如果您希望 Catalina 监控类,请设置为 true /WEB-INF/classes/ 和 /WEB-INF/lib 用于更改,并自动 如果检测到更改,则重新加载 Web 应用程序。这个功能是 在应用程序开发过程中非常有用,但它需要 显着的运行时开销,不推荐用于 部署的生产应用程序。这就是为什么默认设置为 此属性为假。您可以使用 Manager Web 应用程序, 但是,触发按需重新加载已部署的应用程序。

整个系统分为模块,每个模块可以有自己的网络上下文(/WEB-INF/classes/)和/或扩展全局上下文(/classes/)。假设我想让/classes/ 目录可重新加载。我怎样才能做到这一点?

我尝试使用WatchedResource标签,没有效果:

<Context reloadable="true" path="/test" docBase="/MY_MODULE/web/webroot">
     <Manager pathname="" />
     <WatchedResource>/MY_MODULE/classes</WatchedResource>
</Context>

【问题讨论】:

  • 为什么你一个不是/WEB-INF/classes//classes/目录?
  • 这是一个非常大的项目的特定“功能”。
  • 您是否尝试在文件系统中添加软链接?
  • 说它是“功能”并不构成对问题的回答。 “功能”的原因是什么? 考虑到 Tomcat 不支持它,它根本不是一个“功能”,它是一个 错误。如果这些类在 WEB-INF/classes 中,你就不会'没有问题或要回答的问题。
  • @luke 支持“全局上下文”的类应放入 Tomcat 的lib 目录中的 JAR 文件中。你不能只是发明一个特性,然后期望 Tomcat 支持它。

标签: java tomcat tomcat7 catalina


【解决方案1】:

您可以尝试使用 HotSwapAgent 启动 tomcat:Plugin_tomcat. (GITHUB HotswapProjects)

您可以在每个模块上使用不同的 hotswap-agent.properties 文件,以加载不同的类路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多