Is there a way to find out who invoked a CFC?
Posted on 2006-07-13
Is there a way to find out who invoked a CFC? I would like to check and log who the calling .CFM or .CFC file is from within the CFC being invoked. Sort of like back in the Custom Tag days, I need to know which templated called me. I am looking at the GetMetaData() and GetPageContext() functions but nothing stands out yet as how to do what I need to do.
This is a pretty tough one, and I wish I could diagram it to help explain.
In any of these CFC's, we have code wraped in try/catch statements. When an exception is thrown, the catch statements kick in. in the catch blocks, I invoke a cfc called myErrorCFC.cfc..
err = createObject("component", "myError");
From there inside of the catch block I am invoking a method (see below) which performs legancy handling/logging.
What I now need to do is extend that method to log who thrown the exception. Yes the simple way is to pass the name of the cfc or cfm page as an argument, but changing the code which invokes the err cfc is out of my control. So I am left with trying to solve this the hard way.
So far this is where I am at (in my "myErrorCFC.cfc", invoked from within the catch blocks) which is not currently working:
tmp = getPageContext().getException();
This does not work but it may clearify the approach I am taking. Does anyone have any good ideas on how to return the error object from the JRun/jsp/java side of things. "getPageContext()" returns a "coldfusion.runtime.NeoPageContext" object. The end result I am trying to achieve is simply (ha ha) to find out which cfc or cfm page that the exception was thrown and having access to any additional info would be benificial as well.
Any help will be appriciated greatly.