byte-buddy代理能否克服Attach API限制,例如“新方法定义”,“静态变量变化”?我可以看到正在从Agent Builder调用redefineClasses
方法,但不确定它是否也遵循与附加API相同的限制。
我试图了解我是否可以执行以下操作:
1)使用应用程序类加载器加载代理jar,例如ParallelWebappClassLoader
。我的应用程序是一个servlet webapp,在运行时它使用上面的类加载器来加载所有应用程序类。
2)完全重新定义我的类,即任何方法添加/更新和静态/局部变量更改/更新/添加。
我确实有一个当前在Attach API限制内工作的代理,但我很难将类加载从System Class Loader委托给应用程序。
非常感谢,
答案 0 :(得分:1)
这是您正在运行的Java虚拟机的限制。 Byte Buddy有能力完全重新定义"通过使用其API的类,但大多数VM将拒绝此类更改。请查看dynamic code evolution VM是否可以应用此类更改。