1

我们正在寻找 jRebel 的免费替代品。似乎热插拔代理是 jRebel 的免费替代品。但我不确定它是否支持 weblogic server ,是否有人将 hotswap agent 与 weblogic server 一起使用,如何?

4

1 回答 1

1

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

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

但是,如果您对不安全hacky的解决方案感到满意,请继续阅读。

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

但感谢一些评论,我发现 WLS 将从这两个开始:

  • oraclejdk 1.8.0_05 + dcevm 安装程序-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

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

程序:

  • 覆盖/u01/jdk/图像中的原始java,
  • linux_amd64_compiler2/product/libjvm.sodcevm 安装程序中获取并将其放入/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到你的战争/耳朵/类路径
    • 另见https://github.com/HotswapProjects/HotswapAgent/pull/418

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

于 2022-01-18T17:00:09.873 回答