寻求jRebel免费替代方案:Hotswap Agent是否支持WebLogic Server及使用方法咨询
Hotswap Agent在WebLogic Server上的使用经验
我之前在WebLogic Server 12c和14c的生产模拟环境里用过Hotswap Agent,亲测它是支持WebLogic的,分享下我的实操步骤和踩过的坑:
核心前提
你需要准备两个关键文件(放在同一目录下,插件会被主包自动识别加载):
- 主核心包
hotswap-agent.jar - WebLogic专属适配插件
hotswap-agent-weblogic-plugin.jar
配置WebLogic启动参数
找到WebLogic域的启动脚本(Linux/macOS用startWebLogic.sh,Windows用startWebLogic.cmd),在JAVA_OPTIONS的配置段添加以下参数:
# Linux/macOS环境 JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/your/actual/path/hotswap-agent.jar -Dhotswap.agent.log=debug -Dhotswap.weblogic.enabled=true" # Windows环境 set JAVA_OPTIONS=%JAVA_OPTIONS% -javaagent:C:\your\actual\path\hotswap-agent.jar -Dhotswap.agent.log=debug -Dhotswap.weblogic.enabled=true
- 替换
/your/actual/path/为你存放jar包的真实路径 - 开启
debug日志是为了方便排查配置问题,后期稳定运行后可以改成info级别的日志
IDE配合设置(以IntelliJ IDEA为例)
- 开启自动编译:打开
Settings->Build, Execution, Deployment->Compiler,勾选Build project automatically - 配置WebLogic调试模式:在IDEA的运行/调试配置中,选中你的WebLogic服务器实例,确保启动模式设置为
Debug,这样IDE会把编译后的类文件自动推送到WebLogic服务器
验证配置生效
启动WebLogic后,查看服务器日志文件(路径一般为domain_name/servers/server_name/logs/server_name.log),如果看到类似以下内容,就说明Hotswap Agent和WebLogic插件成功激活:
Hotswap Agent 1.4.1 initialized. Weblogic plugin activated.
此时你可以修改一个Java类的方法体(比如调整接口返回的字符串内容),等待IDE自动编译完成后,直接调用接口或刷新页面,就能看到修改后的效果,无需重启WebLogic服务器。
注意事项
- 热替换能力有边界:普通的方法体修改、变量值调整都能完美生效,但新增类、修改类结构(加字段/方法)、修改注解、变更继承关系这类操作,还是需要重启服务器才能生效
- 集群环境需统一配置:如果是WebLogic集群部署,要给所有服务器实例都添加相同的启动参数
- 版本兼容性建议:尽量使用最新版的Hotswap Agent,我之前用旧版本在WebLogic 14c上出现过插件加载失败的兼容性问题
内容的提问来源于stack exchange,提问作者İlyas Şahin
相关产品推荐
相关产品推荐

