我想使用Javassist对servlet执行字节码检测,但挑战在于,无论我做什么样的检测,它都不会反映在Tomcat类中。我可以清楚地看到这是类加载器的一个问题,但我无法使其与自定义类加载器一起工作。我试着搜索这方面的任何例子,但无法找到。您是否有任何关于如何使Tomcat与Javassist一起工作的示例?
答案 0 :(得分:2)
我假设你使用ClassPool.getDefault()
来在Tomcat上运行你的例子。这不起作用,因为应用程序服务器不在类路径上运行。
为了通知Javassist特定应用程序的类,您需要附加当前类加载器的类。您可以通过将LoaderClassPath
的实例附加到当前类池来引用您的应用程序的类加载器来实现此目的。