java - 带有 Hotswap 代理的 Weblogic 服务器

标签 java eclipse weblogic12c jrebel hotswapagent

我们正在寻找 jRebel 的免费替代品。看来热插拔代理是 jRebel 的一个免费的良好替代品。但我不确定它是否支持weblogic服务器,是否有人在weblogic服务器上使用hotswap代理以及如何使用?

最佳答案

DCEVM 和 HotswapAgent 不支持 Weblogic。维护者对此很清楚,在许多问题中都提到过:here , herehere .

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

但如果您同意不安全黑客解决方案,请继续阅读。

dcevm 和 weblogic 的第一个问题是如何让它运行。我测试过weblogic docker image使用 dcevm + HotswapAgent 以及大多数 oraclejdk 和 dcevm 版本的组合会导致 error或其他 JVM/WLS 在启动时崩溃。 很久以前的维护者 said oraclejdk should与 dcevm 一起工作,但我想这并没有得到积极的支持/测试,只是在某些版本组合上巧合地工作。 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.jarhotswap-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

现在运行远程调试 session ,通过添加新方法修改类并重新编译 - 标准热插拔不支持热插拔新方法,它仅在 dcevm 处于 Activity 状态时才起作用。

关于java - 带有 Hotswap 代理的 Weblogic 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70528120/

相关文章:

java - 为什么我的 ArrayList.remove(id) 调用不起作用?

java zk mvvm 清除日期框并执行@command

java - 在 Eclipse 中,如何运行引用一个类的所有 junit 测试

android - 从 Eclipse 导入 Android 项目后,依赖项列表中的项目无效

eclipse - 如何在 eclipse 中的 tomcat 上部署 Maven 项目严重 : A child container failed during start java. util.concurrent.ExecutionException

java - Heroku 中的 R14 和 R10 部署 Spring MVC 应用程序

java - 对数组项进行数字编号

java - 解析 XML 文档时出错

java - Guava-11.0.2.jar 是否与 com.google.common_1.0.0.0_0-6.jar 冲突?