【发布时间】:2011-12-03 02:29:08
【问题描述】:
运行 CF 9,0,1,274733
我有一个自定义 DAO CFC,其方法名为 getGamesBetTypesID()。
该方法由 CF 从以下属性隐式生成/合成:
<cfproperty name="gamesBetTypesID" type="numeric" />
默认变量定义如下:
<cfset VARIABLES.gamesBetTypesID = 0 />
除此之外,没有其他 VARIABLES、vars、LOCALs、ARGUMENTS 或称为 getGamesBetTypesID 的方法。所有 CFC 和函数变量的范围都正确。
这个 save() 方法被调用了数千次,但以下错误被随机抛出,而且只有少数几次。
Detail: The symbol you provided getGamesBetTypesID is not the name of a function.
Message: Entity has incorrect type for being called as a function.
这里是 save() 方法:
<cffunction name="save" access="public" returntype="void" output="false">
<cfif getGamesBetTypesID() eq 0 or getGamesBetTypesID() eq "">
<cfset create() />
<cfelse>
<cfset update() />
</cfif>
</cffunction>
当错误被抛出时,我使用以下方式记录 CFC 元数据的转储 获取元数据(gamesBetTypesObj)。根据元数据,getGamesBetTypesID 函数确实存在。
以前有其他人了解过这个吗?我读过它可能是由于命名和范围冲突而发生的,但我没有。
提前致谢。
【问题讨论】:
-
我遇到了完全相同的错误,这只发生在负载下。 stackoverflow.com/questions/7272498/…虽然我的情况和你的情况略有不同,但确实没有找到好的答案。
-
嗨,Jason,真的不想发布整件事。我刚刚更新以显示它失败的方法。
-
嗨,丹,谢谢。在发布我的帖子之前,我阅读了您的帖子。情况略有不同,但是是的,它只出现在负载下。非常令人沮丧。
-
你在使用
accessor="True"吗?或persistent="true"? -
亨利,使用 accessors="true"。
标签: coldfusion components