获取事件处理程序未在Coldbox中注册的错误

时间:2014-06-09 19:11:19

标签: coldfusion event-handling coldbox

我收到以下错误消息。我已在handlers目录中创建了Uploads.cfc处理程序。检查了一切,无法找到解决方案。

  

错误类型:HandlerService.EventHandlerNotRegisteredException:[N / A]

     

错误消息:事件:上传不是有效的注册事件。

这是Uploads.cfc代码:     

<!--- Default Action --->
<cffunction name="index" returntype="string" output="false" hint="My main event">
    <cfargument name="event">
    <cfargument name="rc">
    <cfargument name="prc">  

    <cfobject component="model.Uploader" name="fileUploader">
    <cfset filesJson = fileUploader.Upload(rc.file)>

    <cfreturn filesJson>
</cffunction>

你能建议一个解决方案吗?

3 个答案:

答案 0 :(得分:3)

您不必重新启动整个CF服务器。您只需要重新初始化ColdBox。只需将?fwreint=?fwreint={password}添加到网址即可。密码在ColdBox.cfc:“reinitpassword”中设置。您还可以在ColdBox.cfc中配置不在非生产环境中缓存处理程序。

如果您使用的是ColdBox 3.6或更高版本,则无需再定义event, rc and prc

<cffunction name="index" returntype="string" output="false" hint="My main event">
    <cfobject component="model.Uploader" name="fileUploader">
    <cfset filesJson = fileUploader.Upload(rc.file)>
    <cfreturn filesJson>
</cffunction>

其次,你应该使用WireBox而不是在你做的时候动态创建对象。最后,不要将特定于函数的变量定义到处理程序CFC文件的variables范围内。使用local作为前缀,以确保这些变量是“本地函数”:仅适用于使用它们的特定函数。

<cffunction name="index" returntype="string" output="false" hint="My main event">
    <cfset local.fileUploader = getModel("Uploader") >
    <cfset local.filesJson = fileUploader.Upload(rc.file)>
    <cfreturn local.filesJson>
</cffunction>

答案 1 :(得分:2)

我过去也遇到过同样的问题。尝试重新启动ColdFusion Application Server。

答案 2 :(得分:0)

iKnowKungFu拼写错误?fwreint =(失踪我) 应该是?fwreinit