首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在ColdFusion / ColdBox应用程序之间共享会话时重命名应用程序时出错

尝试在ColdFusion / ColdBox应用程序之间共享会话时重命名应用程序时出错
EN

Stack Overflow用户
提问于 2018-05-08 07:39:25
回答 1查看 139关注 0票数 0

我希望在驻留在不同子域(同一服务器)上的一些应用程序之间共享会话数据。在过去,我会确保每个应用程序在各自的application.cfc中具有相同的名称。这已经运行了一段时间了--人们在一个应用程序上登录;会话与其他应用程序共享。

现在,我们希望将其中一个应用程序转换为ColdBox。所以我在我的开发机器上设置了在ACF2016上运行的ColdBox 4。将默认的Coldbox应用程序名称从

代码语言:javascript
复制
this.name = hash( getCurrentTemplatePath() ); 

代码语言:javascript
复制
this.name = 'mysite;'

在开发机器上运行良好,没有问题。但只要我将相同的代码上传到生产环境(也是ACF 2016),我就会得到以下错误:

代码语言:javascript
复制
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;

只要我将应用程序名称改回

代码语言:javascript
复制
this.name = hash( getCurrentTemplatePath() ); 

该应用程序运行良好,没有错误(但没有共享会话)。我认为关于第50行的消息可能是在转移注意力。我在那里尝试了各种修改,但除了将应用程序名称改回原来的样子之外,没有什么能改变原始的错误消息。

我在CF admin中取消了组件缓存的检查,并重新启动了(几次)都没有用。我对ColdBox的了解还不够多,无法猜测可能发生了什么,但我完全被难住了。我不知道为什么它可以在一台机器上的ACF 2016上工作,但在另一台机器上却不行。如果有人有任何线索,我将不胜感激!非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-05-09 00:35:41

Element CBBOOTSTRAP is undefined

您在本地开发中看不到此问题的原因是,您总是首先启动CB应用程序,因此在启动非CB应用程序之前在应用程序范围内定义CBBOOTSTRAP。在您的其他环境中,非CB应用程序将首先启动,因此该值尚未定义。

停下来,做这个,

几年前,我遇到过同样的问题,试图让CB和非CB应用程序很好地结合在一起。IIRC,我们必须在两个应用程序之间创建一个共享应用程序变量的包含,并将CFM包含到两个应用程序中,以便在更新这组变量中的任何一个时,我们只需编辑一个文件。

一旦你采用这种方法,尝试共享会话可能会起作用。如果没有,我们还最终在CB和非CB应用程序之间创建了一个SSO登录,这样我们就可以在两者之间登录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50223852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档