我已经检测了一个URI构造函数来将创建的URI写入logshipper。Logshipper类是我的代理库的一部分,它既是maven依赖项又是运行时Arg。
Agent内部的Instrumtion使用ClassFileTransformer将代码行添加到该构造函数中。但是,当调用构造函数时,它会抛出带有详细信息的ClassNotFoundException Message: edu/overbeck/master arbeit/agent/LogShipper。当我查看ClassLoader时,该类被加载。我的IntelliJ调试器截图:![奇怪的错误][1]
为什么会发生这种情况?我的另一个检测类,来自ApacheHTTP核心库的ContentLengthOutputStream,与LogShipper一起工作良好。[1]:https://i.stack.imgur.com/vf8b4.png
这是一个类加载器问题-在这里得到了很好的回答和解释:JavaNoClassDefFoundError当从插桩方法调用自己的类时,添加我的AgentLib包含LogShipper类作为XBootclasspath有帮助。