我遇到了ColdFusion堆的問題。這是我正在試驗的一個小示例應用程序。我想cfinvoke
調用init
方法後,它銷燬組件本地的所有變量。但顯然情況並非如此。該應用程序的工作原理如下,但如果我在index.cfm
的循環中添加一個零就會中斷。什麼是存儲在堆中的原因?有沒有解決的辦法?ColdFusion中的CFINVOKE與java.lang.OutOfMemoryError
index.cfm:
<cfloop from="1" to="1000" index="i">
<cfinvoke component="test" method="init" returnvariable="x">
</cfloop>
<cfoutput><p>#x#</p></cfoutput>
test.cfc:
<cfcomponent output="false">
<cffunction name="init" returntype="string">
<cfset var test = structNew()>
<cfloop from="1" to="1000" index="i">
<cfset test[i] = i>
</cfloop>
<cfreturn Now()>
</cffunction>
</cfcomponent>
而這裏的錯誤消息:
SEVERE: Servlet.service() for servlet CfmServlet threw exception
javax.servlet.ServletException: ROOT CAUSE:
java.lang.OutOfMemoryError: Java heap space`
任何幫助不勝感激。
您應該添加什麼版本你正在運行ColdFusion,這是未來的相關信息。 – 2009-04-27 20:10:27