You asked this on SackOverflow as well. I'll repeat my answer. I know I've seen folks use / in component calls before, but I do not believe it is officially supported. You want to use a dot notation path instead, ala
component="lib.components.jobstate" and assure that lib is either a subdirectory or a known CF mapping that points to the lib folder. On Wed, Jun 15, 2011 at 10:31 AM, Gerald Weir <g.w...@projectsinknowledge.com> wrote: > > I have read many posts by people who have problems with onSessionEnd. This > is my first conversion of application.cfm to application.cfc and the > onSessionEnd is not working with the CFFunction I am trying to invoke. > > I guess what's hanging this up is how to properly call the component from the > /lib/components/ folder where it resides. > > When a user logs in I am creating a session array that tracks a jobNumber and > the last_completed_step in that job. There are multiple jobs in a users > session. At the end of the session I want to write the updated array data > back to the DB. > > I should make it clear that at present I look into my log file and see that > the session is started - as coded in the onSessionStart shown below. > Furthermore, the onSessionEnd also writes to the log file when I take out the > invocation of the component. In other words if I just tell it to write > "Session ended." to the log file I will see it in the log file. I have set > current session timeout in CF Administrator and my app.cfc for 3 minutes for > testing. > > If I call the "giveMeAnswer" method in the jobState.cfc from a separate file > (also at the root level) the giveMeAnswer method works properly and returns > the value "I am a CFC." > > If I move the jobState.cfc to the root level and set the component attribute > to "jobState" I am also getting a return from the component. > > <!--- 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> > > So, is it just not finding the component/method? Any other ideas? > > Thanks much, Jerry > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:345336 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm