当我尝试使用 btrace 跟踪 Spring 项目时,我收到一个错误("处理程序调度失败;嵌套异常是 java.lang.NoSuchFieldError: runtime")EN
最编程
2024-05-22 22:07:53
...
正如我在标题中提到的,我尝试使用btrace来跟踪restful api的执行,得到了这个错误:"Handler dispatch failed; nested exception is java.lang.NoSuchFieldError: runtime"
当我在启动btrace进程之前调用restful api时,这个restful api工作得很好,一旦我启动了btrace进程,这个restful api每次调用这个api.And都会抛出错误。
以下是一些信息:
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版本有关?希望有人能救我,谢谢!