Как я уже упоминал в заголовке, я попытался использовать btrace для отслеживания выполнения успокоительного API и получил эту ошибку: "Handler dispatch failed; nested exception is java.lang.NoSuchFieldError: runtime"
, когда я вызывал успокоительный API. И перед тем, как запустить процесс btrace, этот успокаивающий API работает хорошо, как только я запускаю процесс btrace, этот спокойный API продолжает выдавать ошибку каждый раз, когда вызывается этот API.
некоторая информация:
sping version:4.3.9.RELEASE
btrace version:1.3.12-SNAPSHOT
tomcat version:8.5.34
Restful API (код Java):
@Controller
@RequestMapping("/user")
public class UserInfoController {
@RequestMapping(value = "/greetting/{name}", method = RequestMethod.GET)
@ResponseBody
public WebResponse<String> greet(@PathVariable(value = "name") String name) {
int a = 1;
return WebResponseUtil.onSuccess("hello " + name);
}
}
Код класса теста btrace:
@BTrace
public class BtraceTest {
// //获取耗时与方法名
// @O`enter code here`nMethod(clazz = "com.zrr.controller.UserInfoController", method = "greet", location = @Location(Kind.RETURN))
// public static void getFuncRunTime(@ProbeMethodName String pmn, @Duration long duration) {
// println("接口 " + pmn + strcat("的执行时间(ms)为: ", str(duration / 1000000))); //单位是纳秒,要转为毫秒
// }
@OnMethod(
clazz = "com.meituan.zrr.controller.UserInfoController",
method = "greet",
location = @Location(Kind.ENTRY)
)
public static void getFuncEntry(@ProbeClassName String pcn, @ProbeMethodName String pmn, String name) {
println("类名: " + pcn);
println("方法名: " + pmn);
BTraceUtils.print("入参userName为: ");
BTraceUtils.printFields(name);
}
}
Интересно, это как-то связано с версией btrace?
Надеюсь, что кто-то может спасти меня, СПАСИБО!