我们正在寻找 jRebel 的免费替代品。似乎热插拔代理是 jRebel 的免费替代品。但我不确定它是否支持 weblogic server ,是否有人将 hotswap agent 与 weblogic server 一起使用,如何?
问问题
78 次
1 回答
1
DCEVM 和 HotswapAgent 不支持 Weblogic。维护者对此很清楚,在许多问题中都提到了这一点:here、here和here。
因此,如果您正在寻找一种可以在 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.so
dcevm 安装程序中获取并将其放入/u01/jdk/jre/lib/amd64/dcevm
- 添加
-XXaltjvm=dcevm
到 weblogic 命令行。 - (可选)获取 HotswapAgent 功能:
- 在 wls 命令行上添加
hotswap-agent-core.jar
或hotswap-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
- 在 wls 命令行上添加
现在运行远程调试会话,通过添加新方法修改类并重新编译 - 标准热交换不支持热交换新方法,它仅在 dcevm 处于活动状态时才有效。
于 2022-01-18T17:00:09.873 回答