2012-07-06 39 views
2

我不知所措。为什么我在生产环境中不能在ColdFusion 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: 
      ... 

所以方法/函数有。但我没有去。除了单独的返回值和转储外,我还清除了提交函数。我既没有获得转储也没有获得回报价值。

问题
如果我在里面的过程,为什么我不能叫活的服务器上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

+0

既然你使用了这个,我假设你在cfc里面呢?什么是引发的错误? – Busches 2012-07-06 18:31:47

+0

我没有得到一个。那就是问题所在。我DUMP“a”THIS.COMMIT DUMP“B”,我只在转储文件中得到“a”。在THIS.COMMIT里面,我只有DUMP“c”,它也没有显示出来......无知 – frequent 2012-07-06 18:35:49

+0

你有没有放弃或者提交了什么东西? – Busches 2012-07-06 18:38:03

回答

3

返回检查访问属性上你的方法。

如果您正在使用同一组件中的其他方法调用组件中的方法(或从父组件继承),则访问必须是私有的,公共的或包的。它不能遥控。

确保您的ColdFusion映射对于活动服务器是正确的。

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

+0

似乎我错过了一个javaloader文件....不知怎的,没有让它成为活服务器的方式。我手动添加它,但为了查看它是否工作,我将需要重新启动服务器,对吗? – frequent 2012-07-06 18:57:41

+0

如果你在谈论马克曼德尔的javaloader,你不应该需要重新启动,但你永远不知道jrun是否会对你很好。 – 2012-07-06 19:04:59

+0

这是一个。并且...我停止计算重新启动我的本地服务器,直到我有映射和一切与Javaloader :-)但我遵循所有其他技巧(访问=私人作为继承)映射输出是正确的,缺少文件添加...和它仍然不运行。所以我最后的选择是重新启动jrun和CF8 ....星期一:-( – frequent 2012-07-06 19:08:36

相关问题