Я хочу поделиться данными сеанса между некоторыми приложениями, которые находятся на разных поддоменах (один и тот же сервер). В прошлом я следил за тем, чтобы каждое приложение имело одинаковое имя в соответствующем файле application.cfc. Некоторое время все работало нормально - люди заходят в одно приложение; сеанс делится с остальными.
Теперь мы хотим преобразовать одно из этих приложений в ColdBox. Поэтому я установил ColdBox 4 на ACF 2016 на своей машине разработчика. Изменение имени приложения 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 на одной машине, а не на другой. Если у кого-то есть какие-либо подсказки, я был бы очень признателен! Большое спасибо!