gpt4 book ai didi

coldfusion - 如何在 CommandBox CF 2018 中获取实例名称?

转载 作者:行者123 更新时间:2023-12-03 23:03:37 26 4
gpt4 key购买 nike

我最近开始使用 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 开发人员环境。谢谢你。

最佳答案

这是 Adob​​e ColdFusion 中的一个错误。您正在创建的 CFC 正在尝试创建特定 Java 类的实例。我认识类(class)名称 com.adobe.coldfusion.entman.ProcessServer因为与他们的企业管理器有关,该管理器控制仅在某些版本的 CF 中可用的功能以及仅在其“标准”Tomcat 安装中可用的功能(而不是像 CommandBox 这样的 J2E 部署)。
请在 Adobe bug tracker 中将此报告给 Adob​​e因为它们似乎错误地检测到 servlet 安装。几年前,我与他们合作改进了他们在 CommandBox 上的 servlet 检测,但我猜他们仍然存在一些问题。
作为一种解决方法,您可以尝试在 Adob​​e ColdFusion 的非 CommandBox 安装中找出该类来自哪个 jar 并将其添加到路径中,但我不能保证它会起作用并且不会产生负面影响结果。

关于coldfusion - 如何在 CommandBox CF 2018 中获取实例名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64049904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com