java - 热交换代理 : How to use it for classes inside WAR files?

标签 java tomcat jvm hotswap hotswapagent

所以我找到了这个名为 hotswapagent 的库,它使您能够对部署在应用程序容器上的应用程序进行热交换。它也可以与 XML 配置和类文件一起完美地工作,但对于两种情况:

  1. 在某些 WAR 中,您可以将另一个 jar 用于“utils”并将其作为主要 WAR 的单独依赖项。如何替换我的 jar 中依赖于我的主 WAR 的类文件?

  2. 如何配置 Tomcat/Weblogic 等 Web 应用程序容器以在运行时接受内部 jar 中的更改?

最佳答案

在主模块的资源目录(例如:src/main/resources)中创建一个 hotswap-agent.properties 文件。在该文件中,设置 extraClasspath到 utils 模块的目标类文件夹。它看起来像这样: extraClasspath=<path to utils module>/target/classes

这是一个示例 hotswap-agent.properties包含默认值和解释每个变量的注释的文件:https://github.com/HotswapProjects/HotswapAgent/blob/master/hotswap-agent-core/src/main/resources/hotswap-agent.properties

现在,当您部署 Web 应用程序时,HotSwapAgent 会将额外的类加载到类路径中,您将能够在其中热交换代码。如果您已经可以使用 HotSwapAgent 重新加载类,我假设您不需要执行问题的第二部分。

关于java - 热交换代理 : How to use it for classes inside WAR files?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50512011/

相关文章:

java - 是否可以多次使用流?

java - 将 Tomcat(使用 Liferay)配置为 2012R2 服务时出现异常

java - 使用 java/tomcat 在 mysql 5.5 中插入表情符号

java - 为 JVM 提供熵

java - 检查列表是否全部为空

java - 具有 INNER JOIN 条件的 JPA 命名查询失败

java - 超时排空队列

java - 下载 jre v8 后 Apache Tomcat 不工作

java - 为什么 JNI Activity 实例会阻止 GC?

Java 和多核