我最近开始使用 commandBox 在本地环境中运行 ColdFusion。在我玩了一段时间后,我遇到的一个问题与 adminapi 有关。这是我在一个项目中使用的代码:
adminObj = createObject("component","cfide.adminapi.runtime");
instance = adminObj.getInstanceName();
如果我在我的机器上安装传统的 ColdFusion Developer 版本,这段代码非常简单,并且工作得很好。我尝试在 commandBox 上运行它:"app":{ "cfengine":"adobe@2018.0.7" }
在我运行上面的代码之后,这是我得到的错误消息:
Object Instantiation Exception.
Class not found: com.adobe.coldfusion.entman.ProcessServer
第一个调试步骤是检查组件是否存在。我只是这样检查:
adminObj = createObject("component","cfide.adminapi.runtime");
writeDump(adminObj);
我在屏幕上得到的结果是这样的:
component CFIDE.adminapi.runtime
extends CFIDE.adminapi.base
METHODS
然后我尝试了这个以确保方法存在于范围内:
adminObj = createObject("component","cfide.adminapi.runtime");
writeDump(adminObj.getInstanceName);
输出看起来像这样,这证实了该方法getInstanceName
存在。
function getInstanceName
Arguments: none
ReturnType: any
Roles:
Access: public
Output: false
DisplayName:
Hint: returns the current instance name
Description:
仅当我调用该函数时才会发生错误getInstanceName()
。有谁知道这个错误的原因可能是什么?这个特殊问题有什么解决方案吗?就像我已经提到的,这种方法适用于传统的 ColdFusion 2018 开发人员环境。谢谢你。