Java 仪器和Tomcat热部署

Java 仪器和Tomcat热部署,java,tomcat7,instrumentation,javaagents,Java,Tomcat7,Instrumentation,Javaagents,我正在开发一个Java代理来为一些应用程序类提供工具并获取运行时信息。当我在Tomcat7上重新部署我的应用程序时,我丢失了大部分插入指令的类,并且在代理中没有调用任何方法来重新插入新加载的类 如何捕获新加载的类以对其进行检测?或者是否有方法捕获重新部署事件以启动getAllLoadedClasses并重新执行所有操作 欢迎使用任何更好的方法来解决此问题。重新部署应用程序时,Tomcat会为未部署的应用程序释放类装入器。这样,运行Tomcat的JVM就可以卸载所有类。同时,应用程序被另一个类加载

我正在开发一个Java代理来为一些应用程序类提供工具并获取运行时信息。当我在Tomcat7上重新部署我的应用程序时,我丢失了大部分插入指令的类,并且在代理中没有调用任何方法来重新插入新加载的类

如何捕获新加载的类以对其进行检测?或者是否有方法捕获重新部署事件以启动
getAllLoadedClasses
并重新执行所有操作


欢迎使用任何更好的方法来解决此问题。

重新部署应用程序时,Tomcat会为未部署的应用程序释放类装入器。这样,运行Tomcat的JVM就可以卸载所有类。同时,应用程序被另一个类加载器再次加载,因此,重新部署的应用程序的所有类都将第一次加载

因此,您只需使用
ClassFileTransformer
截取加载过程,并在不重新定义任何类的情况下插入所有类。Tomcat加载的任何类都会触发
ClassFileTransformer