【发布时间】:2018-05-07 23:39:24
【问题描述】:
我希望在驻留在不同子域(同一服务器)上的一些应用程序之间共享会话数据。过去,我会确保每个应用程序在其各自的 application.cfc 中具有相同的名称。这已经有一段时间了——人们在一个应用程序上登录;会话与其他人共享。
现在我们希望将这些应用程序之一转换为 ColdBox。所以我在我的开发机器上设置了在 ACF 2016 上运行的 ColdBox 4。从
更改默认的 Coldbox 应用程序名称this.name = hash( getCurrentTemplatePath() );
到
this.name = 'mysite;'
在开发机器上运行良好,没有问题。但是,只要我将相同的代码上传到生产环境(也是 ACF 2016),我就会收到以下错误:
Element CBBOOTSTRAP is undefined in a Java object of type class [Ljava.lang.String;.
The error occurred in application.cfc: line 50
48 : public boolean function onRequestStart( string targetPage ){
49 : // Process ColdBox Request
50 : application.cbBootstrap.onRequestStart( arguments.targetPage );
51 :
52 : return true;
只要我将应用程序名称改回
this.name = hash( getCurrentTemplatePath() );
应用程序运行良好,没有错误(但会话未共享)。我认为关于第 50 行的信息可能是一条红鲱鱼。我在那里尝试了各种修改,但除了将应用程序名称更改回原来的名称外,没有任何改变原始错误消息。
我在 CF 管理员中取消选中组件缓存并重新启动(多次)无济于事。我对 ColdBox 的了解还不够,无法猜测可能会发生什么,但我完全被难住了。我不知道为什么它可以在一台机器上的 ACF 2016 上工作,但不能在另一台机器上工作。如果有人有任何线索,我将不胜感激!非常感谢!
【问题讨论】:
-
你试过把
this.name = 'mysite;'改成this.name = 'mysite'; -
令我惊讶的是,它以前有效,而不是现在无效。如果我必须这样做,我会使用服务器范围(仍然不是很好)或两个应用程序都可以访问的缓存(即 Redis)。该错误告诉您,Coldbox 没有在它正在查找的应用程序范围内引导;这发生在 ApplicationStart 上。
-
嗨,詹姆斯,抱歉,我在帖子中打错了字。它确实是“我的网站”;在 application.cfc 中。不过很好抓!谢谢!
标签: coldfusion coldbox