Я хочу поделиться данными сеанса между некоторыми приложениями, которые находятся на разных поддоменах (на одном сервере). Раньше я следил за тем, чтобы каждое приложение имело одно и то же имя в соответствующем файле application.cfc. Некоторое время это работает нормально - люди входят в одно приложение; сеанс используется совместно с другими.
Теперь мы хотим преобразовать одно из этих приложений в ColdBox. Итак, я установил ColdBox 4, работающий на ACF 2016, на своей машине разработчика. Изменение имени приложения Coldbox по умолчанию с
this.name = hash( getCurrentTemplatePath() );
to
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';
- person James A Mohler   schedule 08.05.2018