我遇到了 ColdFusion 堆的问题。这是我正在试验的一个小示例应用程序。我认为在cfinvoke
调用该init
方法后它会破坏组件本地的所有变量。但显然情况并非如此。该应用程序如下所示工作,但如果我在其中的循环中添加一个零,index.cfm
它就会中断。什么存储在堆中导致这种情况?有没有解决的办法?
索引.cfm:
<cfloop from="1" to="1000" index="i">
<cfinvoke component="test" method="init" returnvariable="x">
</cfloop>
<cfoutput><p>#x#</p></cfoutput>
测试.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`
任何帮助,将不胜感激。