问题:请求 WSDL 时对于 CFC ,我收到以下错误:变量形式未定义。它发生在这行代码中,在 application.cfc 中的 OnRequestStart 方法中
<cfif structKeyExists(form,'resetappvars')>
<cfset OnApplicationStart() />
</cfif>
如果我请求一个特定的方法,它工作正常。我考虑过使用 cfparam 创建一个默认的表单结构(如果不存在的话),但这似乎是一个丑陋的 hack,我担心它实际上会在变量或 CFC 的这个范围内创建表单结构。也许这也是一个合理的错误?
注意:这仅在我请求 WSDL 时发生,如果我直接调用方法 - 代码按预期执行而没有问题。
更新 Application.cfc 代码示例 - 只需将任何 CFC 添加到您的应用程序并使用 ?wsdl
请求它即可查看问题。这已在 ColdFusion 7 和 ColdFusion 8 上测试(并失败)。
<cfcomponent output="false">
<cffunction name="OnApplicationStart" access="public" returntype="boolean" output="false" hint="Fires when the application is first created.">
<cfset application.dsn = "my_dsn" />
<cfreturn true />
</cffunction>
<cffunction name="OnRequestStart" access="public" returntype="boolean" output="false" hint="Fires at first part of page processing.">
<cfargument name="TargetPage" type="string" required="true" />
<cfif structKeyExists(form,'resetappvars')>
<cfset OnApplicationStart() />
</cfif>
<cfreturn true />
</cffunction>
</cfcomponent>
最佳答案
也许尝试添加:
<cfif IsDefined("form")>...</cfif>
围绕上面的代码?
关于coldfusion - 测试 ColdFusion 中 FORM 范围/结构的存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1206683/