Arthas之动态加载类(retransform)

简介: Arthas之动态加载类(retransform)

一、需求

线上有一个如下一个接口。因业务需要,不能停机,修改接口返回为全部大写+时间戳;

http://192.168.1.4:5656/hi
@RestController
public class HelloController {
    @GetMapping("/hi")
    public String getMessage(String msg) {
 
        return msg.toLowerCase()+System.currentTimeMillis();
    }
}

二、动态替换jvm加载类

1、修改代码

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class HelloController {
    public HelloController() {
    }
 
    @GetMapping({"/hi"})
    public String getMessage(String msg) {
        return msg.toUpperCase() + System.currentTimeMillis();
    }
}

2、编译为class文件

3、上传至服务指定目录

4、使用 Arthas替换

启动arthas,选择替换项目,执行

retransform /usr/local/jar/HelloController.class

5、测试

相关文章
|
Arthas Dubbo Java
Alibaba Java诊断工具Arthas查看Dubbo动态代理类
Alibaba Java诊断工具Arthas查看Dubbo动态代理类
110 0
|
Arthas 缓存 Java
Arthas 实战,助你解决同名类依赖冲突问题(上)
上篇文章『程序员需要了解依赖冲突的原因以及解决办法』中,阿粉分析 Maven 依赖冲突分为两类: 项目同一依赖应用,存在多版本,每个版本同一个类,可能存在差异。 项目不同依赖应用,存在包名,类名完全一样的类。 第二种情况,往往是这个场景,本地/测试环境运行的都是好好的,上线之后测试就是不行。这其实与 JVM 类加载有关,本地/测试环境加载正确类,而生产环境加载错的类,为什么会这样? 主要有两个原因: 同一个类只会被加载器加载一次 不同环境,类的加载顺序不同
Arthas 实战,助你解决同名类依赖冲突问题(上)
|
5月前
|
Arthas 测试技术
Arthas查看已加载类的源码(jad)
Arthas查看已加载类的源码(jad)
230 0
|
Arthas Java 测试技术
Arthas 实战,助你解决同名类依赖冲突问题(下)
上篇文章『程序员需要了解依赖冲突的原因以及解决办法』中,阿粉分析 Maven 依赖冲突分为两类: 项目同一依赖应用,存在多版本,每个版本同一个类,可能存在差异。 项目不同依赖应用,存在包名,类名完全一样的类。 第二种情况,往往是这个场景,本地/测试环境运行的都是好好的,上线之后测试就是不行。这其实与 JVM 类加载有关,本地/测试环境加载正确类,而生产环境加载错的类,为什么会这样? 主要有两个原因: 同一个类只会被加载器加载一次 不同环境,类的加载顺序不同
Arthas 实战,助你解决同名类依赖冲突问题(下)
|
6月前
|
Arthas 监控 Java
Java 诊断利器 Arthas使用
Java 诊断利器 Arthas使用
213 0
|
6月前
|
Arthas 监控 Java
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
Arthas 可以用于监控和诊断在 Windows 系统下部署的 Tomcat 服务
833 2
|
Arthas 监控 Java
开源Java诊断工具Arthas:开篇之watch实战
还在为排查Java程序线上问题头痛吗,看我们用阿里开源的诊断神器 Arthas 来帮您
536 1
|
5月前
|
Arthas 测试技术 Java
一文带你快速了解 Java 线上问题快速诊断神器 Arthas
【6月更文挑战第1天】一文带你快速了解 Java 线上问题快速诊断神器 Arthas
285 3
|
6月前
|
Arthas Java 测试技术
Java诊断利器Arthas安装和使用
Java诊断利器Arthas安装和使用
75 0
|
Arthas 监控 Java
【Java虚拟机】JVM诊断神器Arthas入门实操
【Java虚拟机】JVM诊断神器Arthas入门实操
【Java虚拟机】JVM诊断神器Arthas入门实操