Я прочитал много сообщений от людей, у которых проблемы с onSessionEnd.Это мое первое преобразование application.cfm в application.cfc, и onSessionEnd не работает с CFFunction, которую я пытаюсь вызвать.
Я думаю, что зависает, как правильно вызвать компонент из /Папка lib / components /, где она находится.
Когда пользователь входит в систему, я создаю массив сеансов, который отслеживает jobNumber и last_completed_step в этом задании.В сеансе пользователя есть несколько заданий.В конце сеанса я хочу записать обновленные данные массива обратно в БД.
Я должен дать понять, что в настоящее время я просматриваю свой файл журнала и вижу, что сеанс запущен - как закодировано вonSessionStart показано ниже.Кроме того, onSessionEnd также записывает в файл журнала, когда я вынимаю вызов компонента.Другими словами, если я просто скажу это, чтобы написать «Сессия закончилась».в файл журнала я увижу его в файле журнала.Я установил текущее время ожидания сеанса в CF Administrator и моем app.cfc на 3 минуты для тестирования.
Если я вызываю метод giveMeAnswer в jobState.cfc из отдельного файла (также на корневом уровне)метод giveMeAnswer работает должным образом и возвращает значение «Я являюсь CFC».
Если я переместлю jobState.cfc на корневой уровень и установлю для атрибута компонента значение «jobState», я также получу возврат изкомпонент.
<!--- Runs when your session starts --->
<cffunction name="onSessionStart" returnType="void" output="false">
<!--- :: invoke all session variables | moved out of on session start :: --->
<cfinvoke component="#application.virtualPaths.cfcPath#system/sessionVars" method="init" />
<cflog file="#This.Name#" type="Information" text="Session started.">
</cffunction>
<!--- Runs when session times out --->
<cffunction name="onSessionEnd" returntype="void">
<cfargument name="SessionScope" type="struct" required="true" />
<cfargument name="ApplicationScope" type="struct" required="true" />
<cfinvoke component="/lib/components/jobState" method="giveMeAnswer" returnvariable="returnFromCfc">
</cfinvoke>
<cflog file="#This.Name#" type="Information" text="Session ended. #returnFromCfc#">
<cfreturn />
</cffunction>
Итак, это просто не найти компонент?Есть еще идеи?
Большое спасибо, Джерри