带有热交换代理的 Weblogic 服务器
Weblogic Server with Hotswap agent
我们正在寻找 jRebel 的免费替代品。 hotswap agent 似乎是 jRebel 的免费替代品。但是我不确定它是否支持 weblogic server ,有没有人在 weblogic server 上使用 hotswap agent 以及如何使用?
DCEVM 和 HotswapAgent 不支持 Weblogic。维护者对此很清楚,在很多问题中都有提到:here, here and here.
因此,如果您正在寻找一种可以在 WLS 上开箱即用的完美解决方案,它是最新的并且支持最近的 java 版本,那么 DCEVM 恐怕不是一个.
但如果您对 unsecure、hacky 解决方案没有问题,请继续阅读。
dcevm 和 weblogic 的第一个问题就是连搞定 运行ning。我测试了 weblogic docker image with dcevm + HotswapAgent and most combinations of oraclejdk and dcevm versions cause error 或其他 JVM/WLS 启动时崩溃。
很久以前,维护者 said oraclejdk should 使用 dcevm,但我猜这不是积极的 supported/tested,只是巧合地在某些版本组合上工作。 WLS 使用的深层魔法也无济于事。
但感谢 some comments 我发现 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
注意:这些版本很古老,可能存在很多安全漏洞,使用风险自负。
程序:
- 覆盖原图java
/u01/jdk/
,
- 从 dcevm 安装程序中获取
linux_amd64_compiler2/product/libjvm.so
并将其放入 /u01/jdk/jre/lib/amd64/dcevm
- 将
-XXaltjvm=dcevm
添加到 weblogic 命令行。
- (可选)获取 HotswapAgent 功能:
- 在
/u01/jdk/jre/lib/amd64/hotswap
中添加 hotswap-agent-core.jar
或 hotswap-agent.jar
以及 wls 命令行上的选项 -javaagent:/u01/jdk/jre/lib/amd64/hotswap/hotswap-agent.jar
- 将
hotswap-agent.properties
添加到您的 war/ear/classpath
- 另见 https://github.com/HotswapProjects/HotswapAgent/pull/418
现在 运行 一个远程调试会话,通过添加新方法修改 class 并重新编译 - 标准热交换不支持热交换新方法,它只有在 dcevm 处于活动状态时才有效。
我们正在寻找 jRebel 的免费替代品。 hotswap agent 似乎是 jRebel 的免费替代品。但是我不确定它是否支持 weblogic server ,有没有人在 weblogic server 上使用 hotswap agent 以及如何使用?
DCEVM 和 HotswapAgent 不支持 Weblogic。维护者对此很清楚,在很多问题中都有提到:here, here and here.
因此,如果您正在寻找一种可以在 WLS 上开箱即用的完美解决方案,它是最新的并且支持最近的 java 版本,那么 DCEVM 恐怕不是一个.
但如果您对 unsecure、hacky 解决方案没有问题,请继续阅读。
dcevm 和 weblogic 的第一个问题就是连搞定 运行ning。我测试了 weblogic docker image with dcevm + HotswapAgent and most combinations of oraclejdk and dcevm versions cause error 或其他 JVM/WLS 启动时崩溃。 很久以前,维护者 said oraclejdk should 使用 dcevm,但我猜这不是积极的 supported/tested,只是巧合地在某些版本组合上工作。 WLS 使用的深层魔法也无济于事。
但感谢 some comments 我发现 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
注意:这些版本很古老,可能存在很多安全漏洞,使用风险自负。
程序:
- 覆盖原图java
/u01/jdk/
, - 从 dcevm 安装程序中获取
linux_amd64_compiler2/product/libjvm.so
并将其放入/u01/jdk/jre/lib/amd64/dcevm
- 将
-XXaltjvm=dcevm
添加到 weblogic 命令行。 - (可选)获取 HotswapAgent 功能:
- 在
/u01/jdk/jre/lib/amd64/hotswap
中添加hotswap-agent-core.jar
或hotswap-agent.jar
以及 wls 命令行上的选项-javaagent:/u01/jdk/jre/lib/amd64/hotswap/hotswap-agent.jar
- 将
hotswap-agent.properties
添加到您的 war/ear/classpath - 另见 https://github.com/HotswapProjects/HotswapAgent/pull/418
- 在
现在 运行 一个远程调试会话,通过添加新方法修改 class 并重新编译 - 标准热交换不支持热交换新方法,它只有在 dcevm 处于活动状态时才有效。