function - 为什么在生产环境下运行时,我无法在实时服务器上调用 Coldfusion CFC 中的函数?

标签 function coldfusion extends cfc

我迷茫了。

我通过 Ajax 发布到 Coldfusion8 cfc,虽然它在我的本地计算机上运行良好,但在实时服务器上我无法调用此 CFC 或其扩展 CFC 中的任何函数。

我想这样做:

<cfset LOCAL.response = THIS.commit() />

如果我转储:

<cfdump output="e:\path\to\dump.txt" label="catch" var="committing"> 
<cfdump output="e:\path\to\dump.txt" label="catch" var="#THIS#"> 
<cfset dickhead = THIS.Commit() >
<cfdump output="e:\path\to\dump.txt" label="catch" var="out"> 

我得到:

committing 
****************************************************************

catch - component services.form_service_user 
    extends controllers.form_switch

Methods: 
    DEFAULTS
        [function]
            Arguments: none 
            ReturnType: struct 
            Roles:  
            Access: public 
            Output: false 
            DisplayName:  
            Description:  
PROCESS
        [function]
            Arguments: none 
            ReturnType: struct 
            Roles:  
            Access: remote 
            Output: true 
            DisplayName:  
            Description:   
COMMIT
        [function]
            Arguments: none 
            ReturnType: struct 
            Roles:  
            Access: public 
            Output: false 
    Description:  
             ...

所以方法/函数就在那里。但我还没有退出。此外,我还清除了提交函数,除了单独的返回值和转储之外。我既没有得到转储也没有返回值。

问题:
如果我在 PROCESS 中,当它在生产中正常工作时,为什么我不能在实时服务器上调用 COMMIT?这是某种缓存还是其他设置?另外,我无权访问 CFadmin,所以我或多或少是盲目猜测?

感谢您提供任何信息!

编辑:
提交调用位于 try/catch 内:

<cftry>     
    <cfdump output="e:\dump.txt" label="catch" var="a"> 
    <cfdump output="e:\dump.txt" label="catch" var="#THIS#"> 
    <cfset LOCAL.Response = THIS.Commit() >
    <cfdump output="e:\dump.txt" label="catch" var="b"> 

    <!--- COMMIT ERRORS --->
    <cfcatch>
            <cfdump output="e:\dump.txt" label="catch" var="ERROR">
            <cfset LOCAL.Response.Success = false />
            <cfset LOCAL.Response.Errors = [["server_error","commit error"]] />     
    </cfcatch>
</cftry>   

我收到 AJAX 返回的“提交错误”

最佳答案

检查方法的访问属性。

如果您从同一组件中的另一个方法调用组件中的方法(或从父组件继承的方法),则访问必须是私有(private)的、公共(public)的或包的。它不能是远程的。

确保您的 ColdFusion 映射对于实时服务器来说是正确的。

确保您已将所有应用程序文件部署到实时服务器的正确位置。

关于function - 为什么在生产环境下运行时,我无法在实时服务器上调用 Coldfusion CFC 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11367653/

相关文章:

c - 可以通过什么方式编写代码以便不需要在 C 中调用库?

python - AttributeError: 'function' 对象没有属性 'replace'

excel - 自定义函数在 Excel VBA 中不起作用

excel - ColdFusion:cfspreadsheet 本地化日期格式

coldfusion - 在 ColdFusion 中如何确定文件路径是绝对路径还是相对路径

java - 为什么不能分配 I <?将类型> 扩展到 <类型>?

c# - 用于检查重复项的通用 C# 函数(不同对象、不同字段)

pdf - 如何强制下载 url 中的 pdf?

java - 实现接口(interface)并扩展不同项目的类

java 和继承构造函数