2015-10-27 36 views
0

我正在使用Java代理來測試某些應用程序類並獲取運行時信息。當我在Tomcat 7上重新部署我的應用程序時,我放棄了大部分工具類,並且我的代理程序中沒有任何方法被調用來重新指導新加載的類。Instrumentation和Tomcat Hotdeploy

如何捕獲新加載的類來檢測它們?或者有什麼方法可以捕獲重新部署活動來啓動一個getAllLoadedClasses並重新安置一切?

任何更好的方法來解決這個問題是值得歡迎的。

回答

0

當重新部署應用程序時,Tomcat會爲未部署應用程序重新分類類加載器。這樣,所有的類都可以被運行Tomcat的JVM卸載。同時,應用程序由另一個類加載器再次加載,因此所有重新部署的應用程序類都將首次加載。

因此,您可以簡單地使用ClassFileTransformer截取加載過程,並在不重新定義任何類的情況下對所有類進行分析。由Tomcat加載的任何類都觸發ClassFileTransformer