我正在使用 CF10 应用程序,并尝试定义应用程序特定的类路径以使用 this.javaSettings
功能加载 JAR introduced in CF10 .
来自Application.cfc:
THIS.javaSettings = {
LoadPaths = [".\java_lib\",".\java\myjar.jar"],
loadColdFusionClassPath = true,
reloadOnChange = false
}
这非常有效,我可以在应用程序的基础上定义 JAR。然而,每次我重新加载应用程序时(例如,如果我调用 applicationStop()
),那么 CF 似乎会同时重新加载所有已加载的 JAR/类 - 这意味着经过多次重新加载后,我不可避免地会遇到内存不足 Perm Gen 错误。
有人经历过这种情况吗?我通过更新 GC 策略来启用永久收集来尝试常见的操作:
-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled
最佳答案
好吧,这不是 CF 功能的问题 - 事实证明,内存泄漏源于已编译到 jar 中的 groovy 代码(您可以在此处阅读 groovy 详细信息:https://stackoverflow.com/a/17952925/258813)
看来 CF10 热重载 jar 工作正常!
关于Coldfusion 10 - 应用程序特定的类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17925730/