Coldfusion,你提供的符号 [method_name] 不是函数

标签 coldfusion components

运行 CF 9,0,1,274733

我有一个自定义的 DAO CFC,它有一个名为 getGamesBetTypesID() 的方法。

该方法由 CF 从以下属性隐式生成/合成:

<cfproperty name="gamesBetTypesID" type="numeric" />

默认变量定义如下:
<cfset VARIABLES.gamesBetTypesID = 0 />

除此之外,没有其他变量、变量、本地、参数或称为 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 元数据的转储
getMetaData(gamesBetTypesObj)。根据元数据,函数 getGamesBetTypesID 确实存在。

以前有没有其他人解决过这个问题?我读过它可能由于命名和范围冲突而发生,而我没有。

提前致谢。

最佳答案

发布上述问题后,我删除了 <cfproperty name="gamesBetTypesID" type="numeric" />并为 VARIABLES.gamesBetTypesID 添加了明确的 getter 和 setter .

<cffunction name="getGamesBetTypesID" output="false" access="public" returntype="numeric">
    <cfreturn VARIABLES.gamesBetTypesID />
</cffunction>

<cffunction name="setGamesBetTypesID" output="false" access="public" returntype="void">
    <cfargument name="gamesBetTypesID" required="true" type="numeric" />
    <cfset VARIABLES.gamesBetTypesID = ARGUMENTS.gamesBetTypesID />
</cffunction>

这段代码已经在生产环境中运行了一周,包括一个周末,这是我们忙碌的时期。在过去的 7 天内没有抛出任何异常。以前,忙碌的一天最多会抛出 15 个异常。

这使我相信通过 <CFPROPERTY> 生成/使用隐式访问器存在错误。只出现在某些情况下。我要记录一个错误 Adobe

如果有任何进展,我会更新。

关于Coldfusion,你提供的符号 [method_name] 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7689204/

相关文章:

regex - Coldfusion ReReplace 电话号码重新格式化

json - 如何在 cfhttpparam 中发送 header 信息

coldfusion - 主站点子目录中的测试站点引用了错误的 Application.cfc

coldfusion - Railo Query of Query 返回错误结果

javascript - 如何在 Angular 5的循环中选择dom元素

javascript - react : How to hide a component by clicking on it?

java - 在 ColdFusion 中切换到不同的 XSLT 处理器

Delphi:组件和控件不能与 Frame 一起使用

Angular 可重用模块和组件

javascript - VueJs @error 用于处理图像中损坏的链接