Coldfusion 无法从cfinvoke语句中找到组件

Coldfusion 无法从cfinvoke语句中找到组件,coldfusion,cfml,cfinvoke,Coldfusion,Cfml,Cfinvoke,由于有人离开了我负责维护的公司,我收到了一些ColdFusion代码。问题是我最后一次看一些ColdFusion代码是在大约10年前,所以我完全迷路了,我从零开始 我的问题是我试图定位组件或代码,以及下面显示的代码中调用的任何东西 <cfinvoke component="_admin_tools_kms" method="listKMSUsers" returnVariable="getKMSUsers"> <cfinvokeargument name="argFul

由于有人离开了我负责维护的公司,我收到了一些ColdFusion代码。问题是我最后一次看一些ColdFusion代码是在大约10年前,所以我完全迷路了,我从零开始

我的问题是我试图定位组件或代码,以及下面显示的代码中调用的任何东西

<cfinvoke component="_admin_tools_kms" method="listKMSUsers" returnVariable="getKMSUsers">
    <cfinvokeargument name="argFullAccount" value="1" />
</cfinvoke>


我知道这会返回系统的用户列表,但我找不到进行该调用的确切代码。组件名“\u admin\u tools\u kms”应该是某个地方的cfm文件名,还是仅仅是以某种方式创建的引用名?

让我们来分析一下:

<cfinvoke 
    component="someComponent" 
    method="someFunction" 
    returnVariable="someVariable">
    <cfinvokeargument name="someArgument" value="foo" />
</cfinvoke>

属性
component
是扩展名为
.cfc
的文件名或包含该组件实例的变量。如果它是一个变量,它将被引用为
#someComponent#

如果其中只有一个简单的值,那么很可能在同一文件夹中有一个名为
someComponent.cfc
的文件

如果其中有一个点分隔的值,比如
cfc.services.someComponent

  • 在web根目录中查找名为
    /cfc/
    的文件夹,该文件夹包含另一个文件夹
    /services/
    ,您可以在其中找到文件
    someComponent.cfc
  • 如果看不到该文件夹,请在根
    Application.cfc
    文件中查找创建别名
    cfc
    的ColdFusion映射,并将其映射到所需的文件夹
  • 如果没有,那么检查您的web服务器上的文件夹别名或映射,看看一些精神病患者到底做了什么来隐藏代码存在的地方
但是,我更喜欢对引用的方法而不是组件进行简单的文本搜索。该函数可能存在于引用的组件或文件之外的其他组件或文件中


由于一个CFC可以扩展另一个CFC,因此可能存在一个
parentComponent.CFC
,它扩展了
someComponent
,实际上包含了所讨论的方法。更糟糕的是,文件
someComponent.cfc
可能包含包含该方法的其他文件。唯一的缺点是,如果函数被命名为像
create
这样的通用函数

由于该值是一个简单的字符串,因此它是组件文件的名称。实际文件名将以“.cfc”扩展名结尾。:\u admin\u tools\u kms.cfc。它很可能与调用文件位于同一目录中。我看到Ageax比我快了一分钟。您应该在调用cfm的同一文件夹中找到
\u admin\u tools\u kms.cfc
。或者,我只搜索方法名
listKMSUsers
组件
属性中引用的CFC文件可能扩展或包含其他文件。应该有人将此作为答案写下来。有时很难找到什么叫什么。