作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近开始使用 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 开发人员环境。谢谢你。
最佳答案
这是 Adobe ColdFusion 中的一个错误。您正在创建的 CFC 正在尝试创建特定 Java 类的实例。我认识类(class)名称 com.adobe.coldfusion.entman.ProcessServer
因为与他们的企业管理器有关,该管理器控制仅在某些版本的 CF 中可用的功能以及仅在其“标准”Tomcat 安装中可用的功能(而不是像 CommandBox 这样的 J2E 部署)。
请在 Adobe bug tracker 中将此报告给 Adobe因为它们似乎错误地检测到 servlet 安装。几年前,我与他们合作改进了他们在 CommandBox 上的 servlet 检测,但我猜他们仍然存在一些问题。
作为一种解决方法,您可以尝试在 Adobe ColdFusion 的非 CommandBox 安装中找出该类来自哪个 jar 并将其添加到路径中,但我不能保证它会起作用并且不会产生负面影响结果。
关于coldfusion - 如何在 CommandBox CF 2018 中获取实例名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64049904/
我是一名优秀的程序员,十分优秀!