I just started with byte buddy. I get the following error for a simple agent written with Bytebuddy. I have a simple demo application which is spring boot based and trying to run it with a simple java agent code snippet below.
Appreciate a response from members. I couldn't find detailed documentation. Watched videos of the creator, but am still new to it.
-----------------
public static void premain(String agentArgs, Instrumentation inst) {
System.out.println("Agent Loaded");
new AgentBuilder.Default()
.with(AgentBuilder.Listener.StreamWriting.toSystemOut())
.type(hasSuperType(named("javax.sql.DataSource")))
.transform((builder, type, classLoader, module) -> builder
.visit(Advice.to(VariableAdvice.class).on(isMethod()))).installOn(inst);
}
-------------
import net.bytebuddy.asm.Advice;
public class VariableAdvice {
@Advice.OnMethodEnter
static void OnEnter() {
System.out.println("Hello ByteBuddy");
}
}
------------
"C:\Program Files\Java\jdk1.8.0_261_deleteword\bin\java.exe" -
Exception in thread "main" java.lang.NoClassDefFoundError: net/bytebuddy/dynamic/DynamicType$Builder
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethod(Class.java:2128)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:327)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: java.lang.ClassNotFoundException: net.bytebuddy.dynamic.DynamicType$Builder
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 5 more
FATAL ERROR in native method: processing of -javaagent failed
----------------------