【发布时间】:2015-02-27 15:16:52
【问题描述】:
我在 JVM 1.7 上运行 WebLogic,带有 DCEVM(完整实现)和带有自定义插件的 HotSwapAgent,每个 onClassLoad 都会触发该插件。
我遇到了使用 java.beans.Introspector 的 Freemarker 的问题。我发现的是,当我在 HotSwapAgent 调用的方法上调用 Introspector.flushCaches(通过 ReflectionCommand)时,Introspector 中的 BeanInfo 会正确失效(使用该线程中的调试器进行检查)。但是,当我向 WLS 应用服务器发出请求时,工作线程的 Introspector 会显示旧值!
这似乎是一些线程本地实现,但我无法在 java.beans.Introspector 的文档中找到任何指向该假设的内容。
有人知道为什么会发生这种情况以及如何解决吗?
目前我将有关重新加载的类的信息存储在单独的类中,并从请求线程重新加载该缓存中的所有内容,这很有效。
感谢您提供任何线索。
【问题讨论】: