作者:微信小助手
发布时间:2021-08-12T09:29:33
当你遇到以下类似问题而束手无策时, 这 8 个问题,Arthas 官方文档( 这不是管杀不管埋吗!!! 「下面是笔者结合多年使用 Arthas 的经验,针对这 8 个问题给出的详细解决方案,如果有疑问欢迎评论区指出。」 按照下图中的步骤,选择一个 Java 进程进行 attach。 attach 成功后可以打开谷歌浏览器输入 (吐槽一句 Mac OS 的 Safari 浏览器不支持) 使用 WebConsole 最方便的是你可以打开多个标签页同时操作 这个问题我经常在处理各种「依赖冲突」的时候遇到,有一些类的完全名称是一模一样,通过常规的办法无法解决类具体从哪个 jar 包加载。 别急,看我下面的解决办法。前言
Arthas
是Alibaba开源的Java诊断工具,深受开发者喜爱。Arthas
可以帮助你解决:
https://arthas.aliyun.com/doc
)中并没有给出答案或标准的解决方案。正文
准备
先给出我的测试代码
package com.shockang.study;
import com.alibaba.fastjson.JSON;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.FieldDefaults;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class ArthasDemo {
public static void main(String[] args) {
String s = "[{\"name\":\"zhangsan\",\"age\":\"10\",\"telephone\":\"123456\",\"interests\":[\"sing\",\"dance\",\"rap\"]},\n" +
"{\"name\":\"lisi\",\"age\":\"20\",\"telephone\":\"123457\",\"interests\":[\"sing\",\"swim\"]},\n" +
"{\"name\":\"wangwu\",\"age\":\"30\",\"telephone\":\"123458\",\"interests\":[\"sing\",\"program\"]}]";
//模拟一遍遍的调用方法的过程
for (; ; ) {
System.out.println(new ArthasDemo().convert(s));
try {
TimeUnit.SECONDS.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private List<People> convert(String s) {
return JSON.parseArray(s, People.class);
}
@Getter
@Setter
@ToString
@FieldDefaults(level = AccessLevel.PRIVATE)
private static class People {
/**
* 姓名
*/
String name;
/**
* 年龄
*/
String age;
/**
* 电话
*/
String telephone;
/**
* 兴趣列表
*/
List<String> interests;
}
}以下是控制台正常打印的结果
/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/bin/java ...
[ArthasDemo.People(name=zhangsan, age=10, telephone=123456, interests=[sing, dance, rap]), ArthasDemo.People(name=lisi, age=20, telephone=123457, interests=[sing, swim]), ArthasDemo.People(name=wangwu, age=30, telephone=123458, interests=[sing, program])]
[ArthasDemo.People(name=zhangsan, age=10, telephone=123456, interests=[sing, dance, rap]), ArthasDemo.People(name=lisi, age=20, telephone=123457, interests=[sing, swim]), ArthasDemo.People(name=wangwu, age=30, telephone=123458, interests=[sing, program])]下载并运行 Arthas
访问 WebConsole
http://127.0.0.1:3658/
打开 WebConsole
❝
问题 1:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?