【问题标题】:Weblogic Server with Hotswap agent带有热插拔代理的 Weblogic Server
【发布时间】:2022-01-28 08:17:00
【问题描述】:

我们正在寻找 jRebel 的免费替代品。似乎 hotswap 代理是 jRebel 的一个免费的好选择。但是我不确定它是否支持 weblogic server ,有没有人在 weblogic server 上使用 hotswap agent 以及如何?

【问题讨论】:

标签: java eclipse weblogic12c jrebel hotswapagent


【解决方案1】:

DCEVM 和 HotswapAgent 不支持 Weblogic。维护者对此很清楚,在很多问题中都提到了这一点:hereherehere

因此,如果您正在寻找一种可以在 WLS 上完美开箱即用的解决方案,它是最新的并且支持最近的 Java 版本,那么恐怕 DCEVM 不是一个。

但如果您对 unsecurehacky 解决方案感到满意,请继续阅读。

dcevm 和 weblogic 的第一个问题是让它运行。我使用 dcevm + HotswapAgent 测试了weblogic docker image,大多数 oraclejdk 和 dcevm 版本的组合会导致 error 或其他 JVM/WLS 在启动时崩溃。 很久以前,维护者said oraclejdk should 使用 dcevm,但我想这没有得到积极的支持/测试,只是巧合地在某些版本组合上工作。 WLS 使用的深层魔法也无济于事。

但是感谢some comments我发现WLS将从这两个开始:

  • oraclejdk 1.8.0_05 + dcevm installer-light-jdk8u5.52.jar (25.5-b02-dcevmlight-58)
  • oraclejdk 1.8.0_25 + dcevm DCEVM-light-8u45-installer.jar (25.45-b02-dcevmlight-15

注意:这些版本很古老,可能存在很多安全漏洞,使用风险自负。

程序:

  • 覆盖图片中原来的java/u01/jdk/
  • 从 dcevm 安装程序中获取 linux_amd64_compiler2/product/libjvm.so 并将其放入 /u01/jdk/jre/lib/amd64/dcevm
  • -XXaltjvm=dcevm 添加到 weblogic 命令行。
  • (可选)获取 HotswapAgent 功能:
    • 在 wls 命令行上将 hotswap-agent-core.jarhotswap-agent.jar 添加到 /u01/jdk/jre/lib/amd64/hotswap 以及选项 -javaagent:/u01/jdk/jre/lib/amd64/hotswap/hotswap-agent.jar
    • hotswap-agent.properties 添加到您的war/ear/classpath 中
    • 另见https://github.com/HotswapProjects/HotswapAgent/pull/418

现在运行远程调试会话,通过添加新方法修改类并重新编译 - 标准热插拔不支持热插拔新方法,它仅在 dcevm 处于活动状态时才有效。

【讨论】:

    猜你喜欢
    • 2017-10-28
    • 2012-03-11
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 2014-02-19
    相关资源
    最近更新 更多