基于阿尔萨斯arthas实现java项目的热部署

**

基于阿尔萨斯arthas实现java项目的热部署

**
在这里插入图片描述
PS:不是这个孝子

最近bug产出比较多,面子有点挂不住,突然发现了这个好东西,下次再发现bug,就悄悄的热部署下,神不知鬼不觉,然后把锅甩给网络就好了(_)

首先下载并运行arthas项目

wget https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar

启动后通过id定位到需要热部署的进程

[INFO] Found existing java process, please choose one and input the serial number of the process, eg : 1. Then hit ENTER.
* [1]: 17056 org.apache.catalina.startup.Bootstrap
  [2]: 7169 org.elasticsearch.bootstrap.Elasticsearch
  [3]: 30820 org.apache.catalina.startup.Bootstrap
  [4]: 11958 /home/activemq/apache-activemq-5.15.4//bin/activemq.jar
  [5]: 19622 /home/activemq/apache-activemq-5.15.4//bin/activemq.jar
  [6]: 6486 org.apache.catalina.startup.Bootstrap
  [7]: 3276 org.apache.catalina.startup.Bootstrap
  [8]: 8477 org.logstash.Logstash
  [9]: 28349 org.apache.catalina.startup.Bootstrap
6

找到需要修改的类路径 反编译并重定向到某个目录下

jad --source-only com.yaoxun.system.controller.HealthVideoController > /temp/HealthVideoController.java

修改代码

            public Result view(String id) {
	log.info("我是新来的"); 
                try {
/*109*/             HealthVideo healthVideo = this.healthVideoService.view(id);
                    return new Result(CodeConst.SUCCESS, "成功", (Object)healthVideo);
                }
                catch (PBMException e) {
/*112*/             log.error((Object)e.getMessage());
                    return new Result(CodeConst.FAIL, "失败");
                }
            }

sc查找加载UserController的ClassLoader

sc -d *HealthVideoController | grep classLoaderHash
classLoaderHash   7a040e96

下面编译之前修改的java文件

mc -c 7a040e96 /temp/HealthVideoController.java -d /temp

重新加载class

redefine /temp/com/yaoxun/system/controller/HealthVideoController.class

看看效果吧
调用接口 成功打印
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Ubuntu上安装Arthas,您可以按照以下步骤进行操作: 1. 首先,确保您的系统已经安装了curl。如果没有安装,可以使用以下命令安装curl: ``` sudo apt-get update sudo apt-get install curl ``` 2. 然后,使用curl命令下载Arthas的安装包: ``` curl -0 https://arthas.aliyun.com/arthas-boot.jar --output arthas-boot.jar ``` 3. 下载完成后,您可以使用以下命令运行Arthas: ``` java -jar arthas-boot.jar ``` 这样就完成了在Ubuntu上安装Arthas的过程。请注意,您需要确保您的系统已经安装了Java开发工具包(JDK)。 希望这个回答对您有帮助!如果您还有其他问题,请随时提问。 #### 引用[.reference_title] - *1* [java诊断神器 arthas(阿尔萨斯)](https://blog.csdn.net/Asia1752/article/details/119391408)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ubuntu18.04 atash安装](https://blog.csdn.net/weixin_42108533/article/details/124599152)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Alibaba开源的Java诊断工具Arthas阿尔萨斯) 安装文档](https://blog.csdn.net/weixin_34235135/article/details/92419781)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值