【问题标题】: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。维护者对此很清楚,在很多问题中都提到了这一点:here、here 和 here。
因此,如果您正在寻找一种可以在 WLS 上完美开箱即用的解决方案,它是最新的并且支持最近的 Java 版本,那么恐怕 DCEVM 不是一个。
但如果您对 unsecure、hacky 解决方案感到满意,请继续阅读。
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 功能:
现在运行远程调试会话,通过添加新方法修改类并重新编译 - 标准热插拔不支持热插拔新方法,它仅在 dcevm 处于活动状态时才有效。