无法使用ByteBuddy重新定义java.io.ObjectInputStream。
我尝试了多种方法来解决此问题。但是我找不到钩住“ java.io.ObjectInputStream $ resolveClass”的方法。您能帮我吗?
new AgentBuilder.Default()
// .ignore(none())
.type(named("java.io.ObjectInputStream"))
.transform((builder, typeDescription, classLoader,module) ->
builder.method(named("resolveClass"))
.intercept(MethodDelegation.to(TimerAdvice.class)))
.with(AgentBuilder.Listener.StreamWriting.toSystemOut())
.with(AgentBuilder.RedefinitionStrategy.REDEFINITION)
.with(AgentBuilder.TypeStrategy.Default.REDEFINE)
.installOn(inst);
答案 0 :(得分:0)
您的MethodDelegation将在TimerAdvice中调用适当的方法。为此,需要在引导类加载器上加载该类。您的情况就是这种情况吗?
或者,研究使用Advice装饰一种方法。